Thread (9 messages) 9 messages, 4 authors, 2018-06-19

[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"
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help