checkout: implement "-" abbreviation, add docs and tests
[gitweb.git] / t / t6024-recursive-merge.sh
index 6a6a13002d3dc66c043a43df910a79940b178da4..129fa3000c9543804b43e74e27eec523e328bb5c 100755 (executable)
@@ -60,7 +60,9 @@ git update-index a1 &&
 GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
 '
 
-test_expect_success "combined merge conflicts" "! git merge -m final G"
+test_expect_success "combined merge conflicts" "
+       test_must_fail git merge -m final G
+"
 
 cat > expect << EOF
 <<<<<<< HEAD:a1
@@ -90,9 +92,32 @@ test_expect_success 'refuse to merge binary files' '
        printf "\0\0" > binary-file &&
        git add binary-file &&
        git commit -m binary2 &&
-       ! git merge F > merge.out 2> merge.err &&
+       test_must_fail git merge F > merge.out 2> merge.err &&
        grep "Cannot merge binary files: HEAD:binary-file vs. F:binary-file" \
                merge.err
 '
 
+test_expect_success 'mark rename/delete as unmerged' '
+
+       git reset --hard &&
+       git checkout -b delete &&
+       git rm a1 &&
+       test_tick &&
+       git commit -m delete &&
+       git checkout -b rename HEAD^ &&
+       git mv a1 a2
+       test_tick &&
+       git commit -m rename &&
+       test_must_fail git merge delete &&
+       test 1 = $(git ls-files --unmerged | wc -l) &&
+       git rev-parse --verify :2:a2 &&
+       test_must_fail git rev-parse --verify :3:a2 &&
+       git checkout -f delete &&
+       test_must_fail git merge rename &&
+       test 1 = $(git ls-files --unmerged | wc -l) &&
+       test_must_fail git rev-parse --verify :2:a2 &&
+       git rev-parse --verify :3:a2
+
+'
+
 test_done