t6022: New test checking for unnecessary updates of files in D/F conflicts
authorElijah Newren <newren@gmail.com>
Tue, 1 Mar 2011 01:08:51 +0000 (18:08 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 2 Mar 2011 19:52:59 +0000 (11:52 -0800)
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6022-merge-rename.sh

index 56ccd8a6fafc29481fd9e24a1e970c3244412a12..6b3e8b8d4bfb8676bef52ace744f59c681120f01 100755 (executable)
@@ -737,4 +737,37 @@ test_expect_failure 'avoid unnecessary update, normal rename' '
        test_cmp expect actual # "rename" should have stayed intact
 '
 
+test_expect_success 'setup to test avoiding unnecessary update, with D/F conflict' '
+       git reset --hard &&
+       git checkout --orphan avoid-unnecessary-update-2 &&
+       git rm -rf . &&
+       git clean -fdqx &&
+
+       mkdir df &&
+       printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >df/file &&
+       git add -A &&
+       git commit -m "Common commmit" &&
+
+       git mv df/file temp &&
+       rm -rf df &&
+       git mv temp df &&
+       echo 11 >>df &&
+       git add -u &&
+       git commit -m "Renamed and modified" &&
+
+       git checkout -b merge-branch-2 HEAD~1 &&
+       >unrelated-change &&
+       git add unrelated-change &&
+       git commit -m "Only unrelated changes"
+'
+
+test_expect_failure 'avoid unnecessary update, with D/F conflict' '
+       git checkout -q avoid-unnecessary-update-2^0 &&
+       test-chmtime =1000000000 df &&
+       test-chmtime -v +0 df >expect &&
+       git merge merge-branch-2 &&
+       test-chmtime -v +0 df >actual &&
+       test_cmp expect actual # "df" should have stayed intact
+'
+
 test_done