Skip to main content

Scenario: pushed

The parent scenario after git splice push, before and after a git splice pull --bump. The commits are named as in the drawings below.

Output​

setup.bash builds this state:

$ build_scenario scenario_pushed

After the push: e is H, U(H) = n, B is a, U(B) = k, and T and R point at e prime

After the push, .splice still records n, so B stays at a and every rebuild copies b, d and e again.

B is still a:

$ git log -1 --format=%s "$(git splice boundary lib)"
a

The bump:

$ git splice pull --bump -m f lib
ok lib fetched
ok lib: bumped the synced commit to 8430dba

After the push and the bump: the bump commit f is H and B, U(H) = U(B) = e prime, and T and R point at e prime too

The bump, f, records e' in .splice and changes nothing else. Its folder is e', the commit it records, so it's the new B, and the rebuild has nothing to add.

The monorepo:

$ git log --format=%s
f
e
d
c
b
a
initial commit

The upstream has the pushed commits, with the messages of b, d and e:

$ git -C "$UPSTREAM" log --graph --format=%s main
* e
|\
| * n
| * m
| * l
* | d
* | b
|/
* k

f is B:

$ git log -1 --format=%s "$(git splice boundary lib)"
f

And the splice is up to date:

$ git splice status
On branch main

up to date lib