]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t6416: correct expectation for rename/rename(1to2) + directory/file
authorElijah Newren <newren@gmail.com>
Mon, 26 Oct 2020 17:01:38 +0000 (17:01 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Oct 2020 19:31:24 +0000 (12:31 -0700)
When files are renamed and modified, we need to do three-way content
merges to get the appropriate content in the right location.  When we
have a rename/rename(1to2) conflict (both sides rename the same file,
but differently), that merged content should be placed in each of the
two resulting files.  merge-recursive handled that fine when that was
all that was involved, but when one or more of the two resulting files
were ALSO involved in a directory/file conflict, it failed to propagate
the merged content to that file.  Unfortunately, the one test in t6416
that touched on this combination of cases had been coded to not expect
the merged contents to be present.

Fix the test to check for the right behavior, and record how the
different merge backends will be expected to handle it.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6416-recursive-corner-cases.sh

index 0317e8397023f421a6365c333ee26df748e4b2b4..887c2195a968160be064621cddf54f762e739a63 100755 (executable)
@@ -786,7 +786,7 @@ test_expect_success 'merge of D1 & E3 succeeds' '
        )
 '
 
-test_expect_success 'merge of D1 & E4 notifies user a and a2 are related' '
+test_expect_merge_algorithm failure success 'merge of D1 & E4 puts merge of a and a2 in both a and a2' '
        test_when_finished "git -C directory-file reset --hard" &&
        test_when_finished "git -C directory-file clean -fdqx" &&
        (
@@ -804,7 +804,7 @@ test_expect_success 'merge of D1 & E4 notifies user a and a2 are related' '
                test_line_count = 1 out &&
 
                git rev-parse >expect                  \
-                       A:ignore-me  B:a   D1:a  E4:a2 &&
+                       A:ignore-me  B:a   E4:a2  E4:a2 &&
                git rev-parse   >actual                \
                        :0:ignore-me :1:a~Temporary\ merge\ branch\ 2  :2:a  :3:a2 &&
                test_cmp expect actual