Scenario: pulled again
The monorepo and upstream both change again after the first pull. The second pull creates another merge in the rebuilt history.
Output
setup.bash builds this state:
$ build_scenario scenario_pulled_again
The rebuild contains one merge for each pull:
$ git splice log --graph lib
=== lib (main)
< 1b2d2ce (R) g (Test <test@example.com>)
|\
< | 597e7a6 f (Test <test@example.com>)
< | 8430dba e (Test <test@example.com>)
|\ \
< | | d4da194 d (Test <test@example.com>)
< | | 9ec734f b (Test <test@example.com>)
o | | ae8b31f k (Test <test@example.com>)
/ /
| o e22b60a (T) o (Test <test@example.com>)
|/
o df79a48 n (Test <test@example.com>)
The first parents of the two rebuilt pulls are the local histories that each pull preserved. Their second parents are the upstream commits they pulled, n and o:
$ R="$(git splice rebuild lib)" &&
> git show -s --format='g first parent: %s' "$R^1" &&
> git show -s --format='g second parent: %s' "$R^2" &&
> git show -s --format='e first parent: %s' "$R~2^1" &&
> git show -s --format='e second parent: %s' "$R~2^2"
g first parent: f
g second parent: o
e first parent: d
e second parent: n