Pushed before the move
In the same state, the unpushed commit is pushed first, and the splice moved after. A move changes no file inside the folder, so there's nothing to push after it. A commit after the move then lands on top of the pushed one.
Output
setup.bash builds this state:
$ build_scenario scenario_moved_with_unpushed_commits
$ git splice push vendor/a
ok vendor/a: pushed e859a6b to main
$ git mv vendor/a libs/a &&
> git -c user.name=Mover -c user.email=mover@example.com commit -q -m "m: reorganize folders"
There is nothing left to push:
$ git splice status
On branch main
up to date libs/a
A commit after the move:
$ echo "after the move" >>libs/a/file.txt &&
> git commit -q -a -m "c: after the move"
push wrote nothing to .splice, so its synced commit is still k,
and the upstream already has b'. The rebuild follows the folder back
to a and makes the same b', with the new commit on top, so the
upstream's main moves forward:
$ git splice push libs/a
ok libs/a: pushed ff42743 to main
$ git -C "$UPSTREAM" log --format='%s (%an)' main
c: after the move (Test)
local change (Test)
seed (Test)