Message ID | 20191206160614.631724-2-phillip.wood123@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | commit: fix advice for empty commits during rebases | expand |
Phillip Wood <phillip.wood123@gmail.com> writes: > From: Phillip Wood <phillip.wood@dunelm.org.uk> > > There are a number of places where we compare two revisions with > test $(git rev-parse rev1) = $(git rev-parse rev2) > when these fail there's no indication what has gone wrong and you need > to be running with `-x` to see where the test has failed. Lets use > test_cmp_rev instead. Makes sense. Wonder if we can have a version of coccinelle for shell scripts ;-) > > Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> > --- > t/t3404-rebase-interactive.sh | 38 +++++++++++++++++------------------ > 1 file changed, 19 insertions(+), 19 deletions(-) > > diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh > index c573c99069..d8a05fd439 100755 > --- a/t/t3404-rebase-interactive.sh > +++ b/t/t3404-rebase-interactive.sh > @@ -191,7 +191,7 @@ test_expect_success 'no changes are a nop' ' > git checkout branch2 && > git rebase -i F && > test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" && > - test $(git rev-parse I) = $(git rev-parse HEAD) > + test_cmp_rev I HEAD > ' > > test_expect_success 'test the [branch] option' ' > @@ -200,16 +200,16 @@ test_expect_success 'test the [branch] option' ' > git commit -m "stop here" && > git rebase -i F branch2 && > test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" && > - test $(git rev-parse I) = $(git rev-parse branch2) && > - test $(git rev-parse I) = $(git rev-parse HEAD) > + test_cmp_rev I branch2 && > + test_cmp_rev I HEAD > ' > > test_expect_success 'test --onto <branch>' ' > git checkout -b test-onto branch2 && > git rebase -i --onto branch1 F && > test "$(git symbolic-ref -q HEAD)" = "refs/heads/test-onto" && > - test $(git rev-parse HEAD^) = $(git rev-parse branch1) && > - test $(git rev-parse I) = $(git rev-parse branch2) > + test_cmp_rev HEAD^ branch1 && > + test_cmp_rev I branch2 > ' > > test_expect_success 'rebase on top of a non-conflicting commit' ' > @@ -218,12 +218,12 @@ test_expect_success 'rebase on top of a non-conflicting commit' ' > git rebase -i branch2 && > test file6 = $(git diff --name-only original-branch1) && > test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" && > - test $(git rev-parse I) = $(git rev-parse branch2) && > - test $(git rev-parse I) = $(git rev-parse HEAD~2) > + test_cmp_rev I branch2 && > + test_cmp_rev I HEAD~2 > ' > > test_expect_success 'reflog for the branch shows state before rebase' ' > - test $(git rev-parse branch1@{1}) = $(git rev-parse original-branch1) > + test_cmp_rev branch1@{1} original-branch1 > ' > > test_expect_success 'reflog for the branch shows correct finish message' ' > @@ -280,7 +280,7 @@ test_expect_success 'show conflicted patch' ' > > test_expect_success 'abort' ' > git rebase --abort && > - test $(git rev-parse new-branch1) = $(git rev-parse HEAD) && > + test_cmp_rev new-branch1 HEAD && > test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" && > test_path_is_missing .git/rebase-merge > ' > @@ -323,7 +323,7 @@ test_expect_success 'retain authorship w/ conflicts' ' > echo resolved >conflict && > git add conflict && > git rebase --continue && > - test $(git rev-parse conflict-a^0) = $(git rev-parse HEAD^) && > + test_cmp_rev conflict-a^0 HEAD^ && > git show >out && > grep AttributeMe out > ' > @@ -340,7 +340,7 @@ test_expect_success 'squash' ' > git rebase -i --onto master HEAD~2 > ) && > test B = $(cat file7) && > - test $(git rev-parse HEAD^) = $(git rev-parse master) > + test_cmp_rev HEAD^ master > ' > > test_expect_success 'retain authorship when squashing' ' > @@ -399,9 +399,9 @@ test_expect_success REBASE_P 'preserve merges with -p' ' > git update-index --refresh && > git diff-files --quiet && > git diff-index --quiet --cached HEAD -- && > - test $(git rev-parse HEAD~6) = $(git rev-parse branch1) && > - test $(git rev-parse HEAD~4^2) = $(git rev-parse to-be-preserved) && > - test $(git rev-parse HEAD^^2^) = $(git rev-parse HEAD^^^) && > + test_cmp_rev HEAD~6 branch1 && > + test_cmp_rev HEAD~4^2 to-be-preserved && > + test_cmp_rev HEAD^^2^ HEAD^^^ && > test $(git show HEAD~5:file1) = B && > test $(git show HEAD~3:file1) = C && > test $(git show HEAD:file1) = E && > @@ -433,7 +433,7 @@ test_expect_success '--continue tries to commit' ' > git add file1 && > FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue > ) && > - test $(git rev-parse HEAD^) = $(git rev-parse new-branch1) && > + test_cmp_rev HEAD^ new-branch1 && > git show HEAD | grep chouette > ' > > @@ -740,7 +740,7 @@ test_expect_success 'do "noop" when there is nothing to cherry-pick' ' > --author="Somebody else <somebody@else.com>" && > test $(git rev-parse branch3) != $(git rev-parse branch4) && > git rebase -i branch3 && > - test $(git rev-parse branch3) = $(git rev-parse branch4) > + test_cmp_rev branch3 branch4 > > ' > > @@ -799,7 +799,7 @@ test_expect_success 'rebase -i continue with unstaged submodule' ' > test_must_fail git rebase -i submodule-base && > git reset && > git rebase --continue && > - test $(git rev-parse submodule-base) = $(git rev-parse HEAD) > + test_cmp_rev submodule-base HEAD > ' > > test_expect_success 'avoid unnecessary reset' ' > @@ -822,7 +822,7 @@ test_expect_success 'reword' ' > git rebase -i A && > git show HEAD | grep "E changed" && > test $(git rev-parse master) != $(git rev-parse HEAD) && > - test $(git rev-parse master^) = $(git rev-parse HEAD^) && > + test_cmp_rev master^ HEAD^ && > FAKE_LINES="1 2 reword 3 4" FAKE_COMMIT_MESSAGE="D changed" \ > git rebase -i A && > git show HEAD^ | grep "D changed" && > @@ -886,7 +886,7 @@ test_expect_success 'always cherry-pick with --no-ff' ' > git diff HEAD~$p original-no-ff-branch~$p > out && > test_must_be_empty out > done && > - test $(git rev-parse HEAD~3) = $(git rev-parse original-no-ff-branch~3) && > + test_cmp_rev HEAD~3 original-no-ff-branch~3 && > git diff HEAD~3 original-no-ff-branch~3 > out && > test_must_be_empty out > '
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index c573c99069..d8a05fd439 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -191,7 +191,7 @@ test_expect_success 'no changes are a nop' ' git checkout branch2 && git rebase -i F && test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" && - test $(git rev-parse I) = $(git rev-parse HEAD) + test_cmp_rev I HEAD ' test_expect_success 'test the [branch] option' ' @@ -200,16 +200,16 @@ test_expect_success 'test the [branch] option' ' git commit -m "stop here" && git rebase -i F branch2 && test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" && - test $(git rev-parse I) = $(git rev-parse branch2) && - test $(git rev-parse I) = $(git rev-parse HEAD) + test_cmp_rev I branch2 && + test_cmp_rev I HEAD ' test_expect_success 'test --onto <branch>' ' git checkout -b test-onto branch2 && git rebase -i --onto branch1 F && test "$(git symbolic-ref -q HEAD)" = "refs/heads/test-onto" && - test $(git rev-parse HEAD^) = $(git rev-parse branch1) && - test $(git rev-parse I) = $(git rev-parse branch2) + test_cmp_rev HEAD^ branch1 && + test_cmp_rev I branch2 ' test_expect_success 'rebase on top of a non-conflicting commit' ' @@ -218,12 +218,12 @@ test_expect_success 'rebase on top of a non-conflicting commit' ' git rebase -i branch2 && test file6 = $(git diff --name-only original-branch1) && test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" && - test $(git rev-parse I) = $(git rev-parse branch2) && - test $(git rev-parse I) = $(git rev-parse HEAD~2) + test_cmp_rev I branch2 && + test_cmp_rev I HEAD~2 ' test_expect_success 'reflog for the branch shows state before rebase' ' - test $(git rev-parse branch1@{1}) = $(git rev-parse original-branch1) + test_cmp_rev branch1@{1} original-branch1 ' test_expect_success 'reflog for the branch shows correct finish message' ' @@ -280,7 +280,7 @@ test_expect_success 'show conflicted patch' ' test_expect_success 'abort' ' git rebase --abort && - test $(git rev-parse new-branch1) = $(git rev-parse HEAD) && + test_cmp_rev new-branch1 HEAD && test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" && test_path_is_missing .git/rebase-merge ' @@ -323,7 +323,7 @@ test_expect_success 'retain authorship w/ conflicts' ' echo resolved >conflict && git add conflict && git rebase --continue && - test $(git rev-parse conflict-a^0) = $(git rev-parse HEAD^) && + test_cmp_rev conflict-a^0 HEAD^ && git show >out && grep AttributeMe out ' @@ -340,7 +340,7 @@ test_expect_success 'squash' ' git rebase -i --onto master HEAD~2 ) && test B = $(cat file7) && - test $(git rev-parse HEAD^) = $(git rev-parse master) + test_cmp_rev HEAD^ master ' test_expect_success 'retain authorship when squashing' ' @@ -399,9 +399,9 @@ test_expect_success REBASE_P 'preserve merges with -p' ' git update-index --refresh && git diff-files --quiet && git diff-index --quiet --cached HEAD -- && - test $(git rev-parse HEAD~6) = $(git rev-parse branch1) && - test $(git rev-parse HEAD~4^2) = $(git rev-parse to-be-preserved) && - test $(git rev-parse HEAD^^2^) = $(git rev-parse HEAD^^^) && + test_cmp_rev HEAD~6 branch1 && + test_cmp_rev HEAD~4^2 to-be-preserved && + test_cmp_rev HEAD^^2^ HEAD^^^ && test $(git show HEAD~5:file1) = B && test $(git show HEAD~3:file1) = C && test $(git show HEAD:file1) = E && @@ -433,7 +433,7 @@ test_expect_success '--continue tries to commit' ' git add file1 && FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue ) && - test $(git rev-parse HEAD^) = $(git rev-parse new-branch1) && + test_cmp_rev HEAD^ new-branch1 && git show HEAD | grep chouette ' @@ -740,7 +740,7 @@ test_expect_success 'do "noop" when there is nothing to cherry-pick' ' --author="Somebody else <somebody@else.com>" && test $(git rev-parse branch3) != $(git rev-parse branch4) && git rebase -i branch3 && - test $(git rev-parse branch3) = $(git rev-parse branch4) + test_cmp_rev branch3 branch4 ' @@ -799,7 +799,7 @@ test_expect_success 'rebase -i continue with unstaged submodule' ' test_must_fail git rebase -i submodule-base && git reset && git rebase --continue && - test $(git rev-parse submodule-base) = $(git rev-parse HEAD) + test_cmp_rev submodule-base HEAD ' test_expect_success 'avoid unnecessary reset' ' @@ -822,7 +822,7 @@ test_expect_success 'reword' ' git rebase -i A && git show HEAD | grep "E changed" && test $(git rev-parse master) != $(git rev-parse HEAD) && - test $(git rev-parse master^) = $(git rev-parse HEAD^) && + test_cmp_rev master^ HEAD^ && FAKE_LINES="1 2 reword 3 4" FAKE_COMMIT_MESSAGE="D changed" \ git rebase -i A && git show HEAD^ | grep "D changed" && @@ -886,7 +886,7 @@ test_expect_success 'always cherry-pick with --no-ff' ' git diff HEAD~$p original-no-ff-branch~$p > out && test_must_be_empty out done && - test $(git rev-parse HEAD~3) = $(git rev-parse original-no-ff-branch~3) && + test_cmp_rev HEAD~3 original-no-ff-branch~3 && git diff HEAD~3 original-no-ff-branch~3 > out && test_must_be_empty out '