t3507: add a testcase showing failure with sparse checkout
authorBen Peart <peartben@gmail.com>
Fri, 27 Jul 2018 12:59:42 +0000 (12:59 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Jul 2018 18:15:18 +0000 (11:15 -0700)
Recent changes in merge_content() induced a bug when merging files that are
not present in the local working directory due to sparse-checkout. Add a
test case to demonstrate the bug so that we can ensure the fix resolves
it and to prevent future regressions.

Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3507-cherry-pick-conflict.sh
index 7c5ad086264e3d1c140da7fd996f27c1352a26a9..45ddd81bfac1d64338f229d50a904c81386aeec6 100755 (executable)
@@ -392,4 +392,17 @@ test_expect_success 'commit --amend -s places the sign-off at the right place' '
        test_cmp expect actual
 '
 
+test_expect_failure 'cherry-pick preserves sparse-checkout' '
+       pristine_detach initial &&
+       test_config core.sparseCheckout true &&
+       test_when_finished "
+               echo \"/*\" >.git/info/sparse-checkout
+               git read-tree --reset -u HEAD
+               rm .git/info/sparse-checkout" &&
+       echo /unrelated >.git/info/sparse-checkout &&
+       git read-tree --reset -u HEAD &&
+       test_must_fail git cherry-pick -Xours picked>actual &&
+       test_i18ngrep ! "Changes not staged for commit:" actual
+'
+
 test_done