[PATCH] t3404: check root commit in 'rebase -i --root reword root commit'
flat view
STALE3052d
From: Todd Zullinger <hidden>
Date: 2018-06-18 22:19:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> Helped-by: Johannes Schindelin [off-list ref] Signed-off-by: Todd Zullinger <redacted> --- Hi Johannes, Johannes Schindelin wrote:
On Mon, 18 Jun 2018, Todd Zullinger wrote:quoted
Phillip Wood wrote:quoted
On 15/06/18 05:31, Johannes Schindelin via GitGitGadget wrote:quoted
From: Todd Zullinger <redacted> +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"