Use reflog in 'pull --rebase . foo'
[gitweb.git] / t / t3404-rebase-interactive.sh
index b372314a1094cd9ab99d2aa7aa592875bc0fe226..5cb7e70d54267b53ffb4b0f4c46875308d9de5a6 100755 (executable)
@@ -7,34 +7,39 @@ test_description='git rebase interactive
 
 This test runs git rebase "interactively", by faking an edit, and verifies
 that the result still makes sense.
+
+Initial setup:
+
+     one - two - three - four (conflict-branch)
+   /
+ A - B - C - D - E            (master)
+ | \
+ |   F - G - H                (branch1)
+ |     \
+ |\      I                    (branch2)
+ | \
+ |   J - K - L - M            (no-conflict-branch)
+  \
+    N - O - P                 (no-ff-branch)
+
+ where A, B, D and G all touch file1, and one, two, three, four all
+ touch file "conflict".
 '
 . ./test-lib.sh
 
 . "$TEST_DIRECTORY"/lib-rebase.sh
 
+test_cmp_rev () {
+       git rev-parse --verify "$1" >expect.rev &&
+       git rev-parse --verify "$2" >actual.rev &&
+       test_cmp expect.rev actual.rev
+}
+
 set_fake_editor
 
-# Set up the repository like this:
-#
-#     one - two - three - four (conflict-branch)
-#   /
-# A - B - C - D - E            (master)
-# | \
-# |   F - G - H                (branch1)
-# |     \
-# |\      I                    (branch2)
-# | \
-# |   J - K - L - M            (no-conflict-branch)
-#  \
-#    N - O - P                 (no-ff-branch)
-#
-# where A, B, D and G all touch file1, and one, two, three, four all
-# touch file "conflict".
-#
 # WARNING: Modifications to the initial repository can change the SHA ID used
 # in the expect2 file for the 'stop on conflicting pick' test.
 
-
 test_expect_success 'setup' '
        test_commit A file1 &&
        test_commit B file1 &&
@@ -81,20 +86,12 @@ test_expect_success 'rebase -i with the exec command' '
        test_path_is_file touch-one &&
        test_path_is_file touch-two &&
        test_path_is_missing touch-three " (should have stopped before)" &&
-       test $(git rev-parse C) = $(git rev-parse HEAD) || {
-               echo "Stopped at wrong revision:"
-               echo "($(git describe --tags HEAD) instead of C)"
-               false
-       } &&
+       test_cmp_rev C HEAD &&
        git rebase --continue &&
        test_path_is_file touch-three &&
        test_path_is_file "touch-file  name with spaces" &&
        test_path_is_file touch-after-semicolon &&
-       test $(git rev-parse master) = $(git rev-parse HEAD) || {
-               echo "Stopped at wrong revision:"
-               echo "($(git describe --tags HEAD) instead of master)"
-               false
-       } &&
+       test_cmp_rev master HEAD &&
        rm -f touch-*
 '
 
@@ -115,11 +112,7 @@ test_expect_success 'rebase -i with the exec command checks tree cleanness' '
        export FAKE_LINES &&
        test_must_fail git rebase -i HEAD^
        ) &&
-       test $(git rev-parse master^) = $(git rev-parse HEAD) || {
-               echo "Stopped at wrong revision:"
-               echo "($(git describe --tags HEAD) instead of master^)"
-               false
-       } &&
+       test_cmp_rev master^ HEAD &&
        git reset --hard &&
        git rebase --continue
 '