When testing a reworded root commit, ensure that the squash-onto commit which is created and amended is still the root commit. Suggested-by: Phillip Wood <phillip.wood@xxxxxxxxxxxx> Helped-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> Signed-off-by: Todd Zullinger <tmz@xxxxxxxxx> --- Hi Johannes, Johannes Schindelin wrote: >On Mon, 18 Jun 2018, Todd Zullinger wrote: >> Phillip Wood wrote: >>> On 15/06/18 05:31, Johannes Schindelin via GitGitGadget wrote: >>>> >>>> From: Todd Zullinger <tmz@xxxxxxxxx> >>>> >>>> +test_expect_failure 'rebase -i --root reword root commit' ' >>>> + test_when_finished "test_might_fail git rebase --abort" && >>>> + git checkout -b reword-root-branch master && >>>> + set_fake_editor && >>>> + FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \ >>>> + git rebase -i --root && >>>> + git show HEAD^ | grep "A changed" >>> >>> I wonder if it should also check that HEAD^ is the root commit, to make >>> sure that the squash-onto commit that's created and then amended has >>> been squashed onto. >> >> Hmm, is that something which other tests don't cover or an >> issue that could affect 'rebase -i --root' with reword >> differently than other 'rebase -i' commands? >> >> I admit I'm not well-versed in the rebase -i tests and I >> focused only on creating a test which demonstrated the bug I >> noticed. > > I think we should test this here, to make sure it is tested, and it should > be as easy as: > > test -z "$(git show -s --format=%p HEAD^)" > > Hopefully you beat me to it, otherwise I will try to take care of this > tomorrow. With luck, this will save you a few minutes, assuming the commit message is reasonable (or can be improved with help from Phillip and others). :) Or Junio may just squash this onto js/rebase-i-root-fix. Thanks. t/t3404-rebase-interactive.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index e500d7c320..352a52e59d 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -977,7 +977,8 @@ test_expect_success 'rebase -i --root reword root commit' ' set_fake_editor && FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \ git rebase -i --root && - git show HEAD^ | grep "A changed" + git show HEAD^ | grep "A changed" && + test -z "$(git show -s --format=%p HEAD^)" ' test_expect_success C_LOCALE_OUTPUT 'rebase --edit-todo does not work on non-interactive rebase' ' -- Todd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Anyone who is capable of getting themselves made President should on no account be allowed to do the job. -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"