Merge branch 'sp/fast-import-large-blob'
[gitweb.git] / t / t4200-rerere.sh
index b5a4202998f51cd282ae46c7caec6e615ee47e3f..bb402c3780356d1feab4e8b7c9b9624495d3e176 100755 (executable)
@@ -45,7 +45,7 @@ git commit -q -a -m second
 
 test_expect_success 'nothing recorded without rerere' '
        (rm -rf .git/rr-cache; git config rerere.enabled false) &&
-       ! git merge first &&
+       test_must_fail git merge first &&
        ! test -d .git/rr-cache
 '
 
@@ -54,10 +54,10 @@ test_expect_success 'conflicting merge' '
        git reset --hard &&
        mkdir .git/rr-cache &&
        git config --unset rerere.enabled &&
-       ! git merge first
+       test_must_fail git merge first
 '
 
-sha1=$(sed -e 's/      .*//' .git/MERGE_RR)
+sha1=$(perl -pe 's/    .*//' .git/MERGE_RR)
 rr=.git/rr-cache/$sha1
 test_expect_success 'recorded preimage' "grep ^=======$ $rr/preimage"
 
@@ -65,7 +65,7 @@ test_expect_success 'rerere.enabled works, too' '
        rm -rf .git/rr-cache &&
        git config rerere.enabled true &&
        git reset --hard &&
-       ! git merge first &&
+       test_must_fail git merge first &&
        grep ^=======$ $rr/preimage
 '
 
@@ -134,7 +134,7 @@ test_expect_success 'another conflicting merge' '
        git checkout -b third master &&
        git show second^:a1 | sed "s/To die: t/To die! T/" > a1 &&
        git commit -q -a -m third &&
-       ! git pull . first
+       test_must_fail git pull . first
 '
 
 git show first:a1 | sed 's/To die: t/To die! T/' > expect
@@ -189,9 +189,7 @@ test_expect_success 'file2 added differently in two branches' '
        echo Bello > file2 &&
        git add file2 &&
        git commit -m version2 &&
-       ! git merge fourth &&
-       sha1=$(sed -e "s/       .*//" .git/MERGE_RR) &&
-       rr=.git/rr-cache/$sha1 &&
+       test_must_fail git merge fourth &&
        echo Cello > file2 &&
        git add file2 &&
        git commit -m resolution
@@ -219,7 +217,22 @@ test_expect_success 'rerere.autoupdate' '
        git checkout version2 &&
        test_must_fail git merge fifth &&
        test 0 = $(git ls-files -u | wc -l)
+'
 
+test_expect_success 'merge --rerere-autoupdate' '
+       git config --unset rerere.autoupdate
+       git reset --hard &&
+       git checkout version2 &&
+       test_must_fail git merge --rerere-autoupdate fifth &&
+       test 0 = $(git ls-files -u | wc -l)
+'
+
+test_expect_success 'merge --no-rerere-autoupdate' '
+       git config rerere.autoupdate true
+       git reset --hard &&
+       git checkout version2 &&
+       test_must_fail git merge --no-rerere-autoupdate fifth &&
+       test 2 = $(git ls-files -u | wc -l)
 '
 
 test_done