t7610: add test case for rerere+mergetool+subdir bug
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>
Richard Hansen committed
Jan 10, 2017 at 15:42 UTC
b9ebb659268ae1ecf742dff6261e87f4ee57dde7
1 file changed
+20
-1
t/t7610-mergetool.sh
+20
-1
@@ -216,7 +216,7 @@ test_expect_success 'mergetool skips autoresolved' '
216
test "$output" = "No files need merging"
217
'
218
219
-test_expect_success 'mergetool merges all from subdir' '
219
+test_expect_success 'mergetool merges all from subdir (rerere disabled)' '
220
test_when_finished "git reset --hard" &&
221
git checkout -b test$test_count branch1 &&
222
test_config rerere.enabled false &&
@@ -234,6 +234,25 @@ test_expect_success 'mergetool merges all from subdir' '
234
)
235
'
236
237
+test_expect_failure 'mergetool merges all from subdir (rerere enabled)' '
238
+ test_when_finished "git reset --hard" &&
239
+ git checkout -b test$test_count branch1 &&
240
+ test_config rerere.enabled true &&
241
+ rm -rf .git/rr-cache &&
242
+ (
243
+ cd subdir &&
244
+ test_must_fail git merge master &&
245
+ ( yes "r" | git mergetool ../submod ) &&
246
+ ( yes "d" "d" | git mergetool --no-prompt ) &&
247
+ test "$(cat ../file1)" = "master updated" &&
248
+ test "$(cat ../file2)" = "master new" &&
249
+ test "$(cat file3)" = "master new sub" &&
250
+ ( cd .. && git submodule update -N ) &&
251
+ test "$(cat ../submod/bar)" = "master submodule" &&
252
+ git commit -m "branch2 resolved by mergetool from subdir"
253
+ )
254
+'
255
+
256
test_expect_success 'mergetool skips resolved paths when rerere is active' '
257
test_when_finished "git reset --hard" &&
258
test_config rerere.enabled true &&