]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t7610: add test case for rerere+mergetool+subdir bug
authorRichard Hansen <hansenr@google.com>
Tue, 10 Jan 2017 20:42:00 +0000 (15:42 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Jan 2017 21:22:20 +0000 (13:22 -0800)
If rerere is enabled and mergetool is run from a subdirectory,
mergetool always prints "No files need merging".  Add an expected
failure test case for this situation.

Signed-off-by: Richard Hansen <hansenr@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7610-mergetool.sh

index de006edf07c5295d3310463426f054df33e93738..ab0b005b28e26869f89b831ec11b5c677ea17e5f 100755 (executable)
@@ -216,7 +216,7 @@ test_expect_success 'mergetool skips autoresolved' '
        test "$output" = "No files need merging"
 '
 
-test_expect_success 'mergetool merges all from subdir' '
+test_expect_success 'mergetool merges all from subdir (rerere disabled)' '
        test_when_finished "git reset --hard" &&
        git checkout -b test$test_count branch1 &&
        test_config rerere.enabled false &&
@@ -234,6 +234,25 @@ test_expect_success 'mergetool merges all from subdir' '
        )
 '
 
+test_expect_failure 'mergetool merges all from subdir (rerere enabled)' '
+       test_when_finished "git reset --hard" &&
+       git checkout -b test$test_count branch1 &&
+       test_config rerere.enabled true &&
+       rm -rf .git/rr-cache &&
+       (
+               cd subdir &&
+               test_must_fail git merge master &&
+               ( yes "r" | git mergetool ../submod ) &&
+               ( yes "d" "d" | git mergetool --no-prompt ) &&
+               test "$(cat ../file1)" = "master updated" &&
+               test "$(cat ../file2)" = "master new" &&
+               test "$(cat file3)" = "master new sub" &&
+               ( cd .. && git submodule update -N ) &&
+               test "$(cat ../submod/bar)" = "master submodule" &&
+               git commit -m "branch2 resolved by mergetool from subdir"
+       )
+'
+
 test_expect_success 'mergetool skips resolved paths when rerere is active' '
        test_when_finished "git reset --hard" &&
        test_config rerere.enabled true &&