Chris Webb [off-list ref] writes:
quoted
In short, my questions are:
(1) what is the purpose of the first "commit --amend" to update the
sentinel root commit?
This first commit --amend isn't supposed to change the empty tree in the
commit: the tree and index should be unchanged at this point. I'm only
running it to set the commit message and author.
The idea here is that I want the author and commit message already in place
if cherry-pick (and hence pick_one -n) fails so that we drop out for the
user to resolve conflicts.
Very understandable. Perhaps in-code comments would have helped.
quoted
(2) Is the purpose of "pick_one -n" done here to create a root
commit? Does it always do so correctly?
pick_one -n cherry-picks the changes without actually making a commit. It's
already used in the squash case, so should be well-tested.
OK.