Hi Philippe
On 10/01/2023 13:15, Philippe Blain via GitGitGadget wrote:
* added a link to the mailing list thread in the commit message of 5/5.
v1: Documentation: updates and a correction around 'ORIG_HEAD'
This series' initial motivation was to clear up a confusion that arose in
[1] where it was noticed that 'ORIG_HEAD' is not guaranteed to point to the
original branch tip at the end of the rebase if 'git reset' is used during
the rebase.
Patch 5/5 adds a note to 'git rebase's documentation to make that explicit.
When taking a look at the existing documentation mentioning 'ORIG_HEAD', I
also found an error in an example (patch 1/5), other small inconsistencies
(patch 2-3/5), and a potential improvement (patch 4/5).
Thanks for doing this, I think the adding a note to the rebase
documentation is a good idea given the confusion that's been reported.
The patches all look great to me apart from patch 4 where I share
Junio's concerns about the readability and maintenance burden of the
list of commands. I was surprised to learn that merge also sets
ORIG_HEAD, thanks for being so thorough.
Best Wishes
Phillip
Cheers,
Philippe.
[1]
https://lore.kernel.org/git/1b2b8e98-5506-a1e6-6059-a967757b3bb8@xxxxxxxxx/T/#m827179c5adcfb504d67f76d03c8e6942b55e5ed0
Philippe Blain (5):
git-cherry-pick.txt: do not use 'ORIG_HEAD' in example
git-reset.txt: mention 'ORIG_HEAD' in the Description
git-merge.txt: mention 'ORIG_HEAD' in the Description
revisions.txt: be explicit about commands writing 'ORIG_HEAD'
git-rebase.txt: add a note about 'ORIG_HEAD' being overwritten
Documentation/git-cherry-pick.txt | 2 +-
Documentation/git-merge.txt | 3 ++-
Documentation/git-rebase.txt | 7 +++++++
Documentation/git-reset.txt | 3 ++-
Documentation/revisions.txt | 3 ++-
5 files changed, 14 insertions(+), 4 deletions(-)
base-commit: 4dbebc36b0893f5094668ddea077d0e235560b16
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1456%2Fphil-blain%2Fdoc-orig-head-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1456/phil-blain/doc-orig-head-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1456
Range-diff vs v1:
1: 74b2d5a9144 = 1: 74b2d5a9144 git-cherry-pick.txt: do not use 'ORIG_HEAD' in example
2: f25c71fd4c3 = 2: f25c71fd4c3 git-reset.txt: mention 'ORIG_HEAD' in the Description
3: e488ad3ce1d = 3: e488ad3ce1d git-merge.txt: mention 'ORIG_HEAD' in the Description
4: 302b789a486 = 4: 302b789a486 revisions.txt: be explicit about commands writing 'ORIG_HEAD'
5: 9ef427a9a2a ! 5: 7eed8f35376 git-rebase.txt: add a note about 'ORIG_HEAD' being overwritten
@@ Commit message
Indeed, using other commands that write 'ORIG_HEAD' during the rebase,
like splitting a commit using 'git reset HEAD^', will lead to 'ORIG_HEAD'
- being overwritten.
+ being overwritten. This causes confusion for some users [1].
Add a note about that in the 'Description' section, and mention the more
robust alternative of using the branch's reflog.
+ [1] https://lore.kernel.org/git/28ebf03b-e8bb-3769-556b-c9db17e43dbb@xxxxxxxxx/T/#m827179c5adcfb504d67f76d03c8e6942b55e5ed0
+
Reported-by: Erik Cervin Edin <erik@xxxxxxxxxxx>
Signed-off-by: Philippe Blain <levraiphilippeblain@xxxxxxxxx>