summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Ben Peart <peartben@gmail.com>2018-07-27 12:59:42 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-07-27 11:15:18 -0700
commit92203e6432cd77c3dfc82bd475a4c802085cffcb (patch)
tree4a4b053f101de654bdbb2f3a4805dee1fb96dc50
parentGit 2.18 (diff)
downloadtgif-92203e6432cd77c3dfc82bd475a4c802085cffcb.tar.xz
t3507: add a testcase showing failure with sparse checkout
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>
-rwxr-xr-xt/t3507-cherry-pick-conflict.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/t/t3507-cherry-pick-conflict.sh b/t/t3507-cherry-pick-conflict.sh
index 7c5ad08626..45ddd81bfa 100755
--- a/t/t3507-cherry-pick-conflict.sh
+++ b/t/t3507-cherry-pick-conflict.sh
@@ -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