[PATCH v2 0/3] rebase --continue: remove .git/MERGE_MSG
- From
- Phillip Wood via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 12, 2021, 13:42 UTC
- Message-ID
- <pull.1013.v2.git.1628775729.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1013.git.1628587917.gitgitgadget@gmail.com>
Thanks for the comments on V1. I have expanded the commit message for the first patch to give a bit more context and reworded a couple of test descriptions in patch 2 as suggested by Elijah. Patch 3 is unchanged.
V1 Cover Letter:
If the user removes all the changes from the worktree without running git reset then rebase --continue leaves behind .git/MERGE_MSG which will then seed the message of the next commit. While working on this I noticed a couple of fixups for the test files I was adding to, I've cc'd Elijah in case my reasoning for patch 2 is off. Thanks to Victor for the bug report.
cc: Victor Gambier vgambier@excilys.com cc: Elijah Newren newren@gmail.com cc: Johannes Schindelin Johannes.Schindelin@gmx.de
Phillip Wood (3): t3403: fix commit authorship rebase --apply: restore some tests rebase --continue: remove .git/MERGE_MSG
sequencer.c | 3 +++ t/t3403-rebase-skip.sh | 13 +++++++++++-- t/t3418-rebase-continue.sh | 18 ++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-)
base-commit: 2d755dfac9aadab25c3e025b849252b8c0a61465 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1013%2Fphillipwood%2Fwip%2Frebase-remove-merge-msg-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1013/phillipwood/wip/rebase-remove-merge-msg-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/1013
Range-diff vs v1:
1: 7559781ca92 ! 1: 8755dfa9d04 t3403: fix commit authorship
@@ Commit message
t3403: fix commit authorship
Setting GIT_AUTHOR_* when committing with --amend will only change the
- author if we also pass --reset-author
+ author if we also pass --reset-author. This commit is used in some
+ tests that ensure the author ident does not change when rebasing.
+ Creating this commit without changing the authorship meant that the
+ test would not catch regressions that caused rebase to discard the
+ original authorship information.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
2: f7722dab21d ! 2: 84fe5823b4f rebase --apply: restore some tests
@@ Commit message
from "am" to "merge"", 2020-02-15). However some tests seem to have
been missed leading to us testing the "merge" backend twice. This
patch fixes some cases that I noticed while adding tests to these
- files, I have not audited all the other rebase test files.
+ files, I have not audited all the other rebase test files. I've
+ reworded a couple of the test descriptions to make it clear which
+ backend they are testing.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
@@ t/t3403-rebase-skip.sh: test_expect_success setup '
test_expect_success 'rebase --skip can not be used with other options' '
## t/t3418-rebase-continue.sh ##
-@@ t/t3418-rebase-continue.sh: test_expect_success 'non-interactive rebase --continue works with touched file'
+@@ t/t3418-rebase-continue.sh: test_expect_success 'setup' '
+ git checkout main
+ '
+
+-test_expect_success 'interactive rebase --continue works with touched file' '
++test_expect_success 'merge based rebase --continue with works with touched file' '
+ rm -fr .git/rebase-* &&
+ git reset --hard &&
+ git checkout main &&
+@@ t/t3418-rebase-continue.sh: test_expect_success 'interactive rebase --continue works with touched file' '
+ git rebase --continue
+ '
+
+-test_expect_success 'non-interactive rebase --continue works with touched file' '
++test_expect_success 'apply based rebase --continue works with touched file' '
+ rm -fr .git/rebase-* &&
git reset --hard &&
git checkout main &&
3: 6a63b657f13 ! 3: 028c9dfc460 rebase --continue: remove .git/MERGE_MSG
@@ t/t3403-rebase-skip.sh: test_expect_success 'moved back to branch correctly' '
test_must_fail git rebase -i --onto goodbye \
## t/t3418-rebase-continue.sh ##
-@@ t/t3418-rebase-continue.sh: test_expect_success 'interactive rebase --continue works with touched file' '
+@@ t/t3418-rebase-continue.sh: test_expect_success 'merge based rebase --continue with works with touched file'
git rebase --continue
'
-+test_expect_success 'rebase --continue removes .git/MERGE_MSG' '
++test_expect_success 'merge based rebase --continue removes .git/MERGE_MSG' '
+ git checkout -f --detach topic &&
+
+ test_must_fail git rebase --onto main HEAD^ &&
@@ t/t3418-rebase-continue.sh: test_expect_success 'interactive rebase --continue w
+ test_path_is_missing .git/MERGE_MSG
+'
+
- test_expect_success 'non-interactive rebase --continue works with touched file' '
+ test_expect_success 'apply based rebase --continue works with touched file' '
rm -fr .git/rebase-* &&
git reset --hard &&-- gitgitgadget