[PATCH] t3404: check root commit in 'rebase -i --root reword root commit'
- From
Todd Zullinger <tmz@pobox.com>
- Date
- Jun 18, 2018, 22:19 UTC
- Message-ID
- <20180618221942.GQ11827@zaya.teonanacatl.net>
- In-Reply-To
- <nycvar.QRO.7.76.6.1806182343421.77@tvgsbejvaqbjf.bet>
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@talktalk.net> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Todd Zullinger <tmz@pobox.com> --- Hi Johannes,
Johannes Schindelin wrote:
Show 33 quoted lines
>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@pobox.com> >>>> >>>> +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"