Merge branch 'sb/pull-rebase'
[gitweb.git] / t / t7601-merge-pull-config.sh
index 32585f8e0dcedc6800d198910f0d13c7c6101c67..7ba94ea99bc0785da5b398e494d23469ba44992d 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-test_description='git-merge
+test_description='git merge
 
 Testing pull.* configuration parsing.'
 
@@ -70,10 +70,10 @@ test_expect_success 'merge c1 with c2 and c3 (recursive and octopus in pull.octo
 
 conflict_count()
 {
-       eval $1=`{
+       {
                git diff-files --name-only
                git ls-files --unmerged
-       } | wc -l`
+       } | wc -l
 }
 
 # c4 - c5
@@ -112,18 +112,45 @@ test_expect_success 'setup conflicted merge' '
 # recusive is choosen.
 
 test_expect_success 'merge picks up the best result' '
+       git config --unset-all pull.twohead &&
+       git reset --hard c5 &&
+       git merge -s resolve c6
+       resolve_count=$(conflict_count) &&
+       git reset --hard c5 &&
+       git merge -s recursive c6
+       recursive_count=$(conflict_count) &&
+       git reset --hard c5 &&
+       git merge -s recursive -s resolve c6
+       auto_count=$(conflict_count) &&
+       test $auto_count = $recursive_count &&
+       test $auto_count != $resolve_count
+'
+
+test_expect_success 'merge picks up the best result (from config)' '
        git config pull.twohead "recursive resolve" &&
        git reset --hard c5 &&
        git merge -s resolve c6
-       conflict_count resolve_count &&
+       resolve_count=$(conflict_count) &&
        git reset --hard c5 &&
        git merge -s recursive c6
-       conflict_count recursive_count &&
+       recursive_count=$(conflict_count) &&
        git reset --hard c5 &&
        git merge c6
-       conflict_count auto_count &&
-       test "$auto_count" = "$recursive_count" &&
-       test "$auto_count" != "$resolve_count"
+       auto_count=$(conflict_count) &&
+       test $auto_count = $recursive_count &&
+       test $auto_count != $resolve_count
+'
+
+test_expect_success 'merge errors out on invalid strategy' '
+       git config pull.twohead "foobar" &&
+       git reset --hard c5 &&
+       test_must_fail git merge c6
+'
+
+test_expect_success 'merge errors out on invalid strategy' '
+       git config --unset-all pull.twohead &&
+       git reset --hard c5 &&
+       test_must_fail git merge -s "resolve recursive" c6
 '
 
 test_done