Merge branch 'bc/submodule-foreach-stdin-fix-1.7.4' into maint
[gitweb.git] / t / t4151-am-abort.sh
index dda7e2c28e2be190a94868f6c73bb9a5d918f8bf..c95c4ccc393d0863ad53b6a2a684893282d7d9e6 100755 (executable)
@@ -14,13 +14,15 @@ test_expect_success setup '
        git add file-1 file-2 &&
        git commit -m initial &&
        git tag initial &&
-       for i in 2 3 4 5
+       for i in 2 3 4 5 6
        do
                echo $i >>file-1 &&
+               echo $i >otherfile-$i &&
+               git add otherfile-$i &&
                test_tick &&
                git commit -a -m $i || break
        done &&
-       git format-patch initial &&
+       git format-patch --no-numbered initial &&
        git checkout -b side initial &&
        echo local change >file-2-expect
 '
@@ -32,7 +34,7 @@ do
                git reset --hard initial &&
                cp file-2-expect file-2 &&
 
-               test_must_fail git am$with3 000[124]-*.patch &&
+               test_must_fail git am$with3 000[1245]-*.patch &&
                git log --pretty=tformat:%s >actual &&
                for i in 3 2 initial
                do
@@ -41,16 +43,32 @@ do
                test_cmp expect actual
        '
 
+       test_expect_success "am$with3 --skip continue after failed am$with3" '
+               test_must_fail git am$with3 --skip >output &&
+               test "$(grep "^Applying" output)" = "Applying: 6" &&
+               test_cmp file-2-expect file-2 &&
+               test ! -f .git/MERGE_RR
+       '
+
        test_expect_success "am --abort goes back after failed am$with3" '
-               git-am --abort &&
+               git am --abort &&
                git rev-parse HEAD >actual &&
                git rev-parse initial >expect &&
                test_cmp expect actual &&
                test_cmp file-2-expect file-2 &&
                git diff-index --exit-code --cached HEAD &&
-               test ! -f .git/rr-cache/MERGE_RR
+               test ! -f .git/MERGE_RR
        '
 
 done
 
+test_expect_success 'am --abort will keep the local commits intact' '
+       test_must_fail git am 0004-*.patch &&
+       test_commit unrelated &&
+       git rev-parse HEAD >expect &&
+       git am --abort &&
+       git rev-parse HEAD >actual &&
+       test_cmp expect actual
+'
+
 test_done