Code

Merge branch 'gp/maint-diffdoc'
[git.git] / t / t3404-rebase-interactive.sh
index 40d6799ed6243e353b38aa7c7149af1362b798b2..11139048fe2238a3e06972252d7410da4058dccb 100755 (executable)
@@ -80,7 +80,7 @@ cat "$1".tmp
 action=pick
 for line in $FAKE_LINES; do
        case $line in
-       squash)
+       squash|edit)
                action="$line";;
        *)
                echo sed -n "${line}s/^pick/$action/p"
@@ -180,7 +180,7 @@ test_expect_success 'squash' '
 '
 
 test_expect_success 'retain authorship when squashing' '
-       git show HEAD | grep "^Author: Nitfol"
+       git show HEAD | grep "^Author: Twerp Snog"
 '
 
 test_expect_success 'preserve merges with -p' '
@@ -264,6 +264,27 @@ test_expect_success 'interrupted squash works as expected' '
        test $one = $(git rev-parse HEAD~2)
 '
 
+test_expect_success 'interrupted squash works as expected (case 2)' '
+       for n in one two three four
+       do
+               echo $n >> conflict &&
+               git add conflict &&
+               git commit -m $n
+       done &&
+       one=$(git rev-parse HEAD~3) &&
+       ! FAKE_LINES="3 squash 1 2" git rebase -i HEAD~3 &&
+       (echo one; echo four) > conflict &&
+       git add conflict &&
+       ! git rebase --continue &&
+       (echo one; echo two; echo four) > conflict &&
+       git add conflict &&
+       ! git rebase --continue &&
+       echo resolved > conflict &&
+       git add conflict &&
+       git rebase --continue &&
+       test $one = $(git rev-parse HEAD~2)
+'
+
 test_expect_success 'ignore patch if in upstream' '
        HEAD=$(git rev-parse HEAD) &&
        git checkout -b has-cherry-picked HEAD^ &&
@@ -276,4 +297,24 @@ test_expect_success 'ignore patch if in upstream' '
        test $HEAD = $(git rev-parse HEAD^)
 '
 
+test_expect_success '--continue tries to commit, even for "edit"' '
+       parent=$(git rev-parse HEAD^) &&
+       test_tick &&
+       FAKE_LINES="edit 1" git rebase -i HEAD^ &&
+       echo edited > file7 &&
+       git add file7 &&
+       FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue &&
+       test edited = $(git show HEAD:file7) &&
+       git show HEAD | grep chouette &&
+       test $parent = $(git rev-parse HEAD^)
+'
+
+test_expect_success 'rebase a detached HEAD' '
+       grandparent=$(git rev-parse HEAD~2) &&
+       git checkout $(git rev-parse HEAD) &&
+       test_tick &&
+       FAKE_LINES="2 1" git rebase -i HEAD~2 &&
+       test $grandparent = $(git rev-parse HEAD~2)
+'
+
 test_done