summaryrefslogtreecommitdiffstats
path: root/t/t1091-sparse-checkout-builtin.sh
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2021-12-16 17:13:42 +0100
committerJunio C Hamano <gitster@pobox.com>2021-12-30 23:39:57 +0100
commita3eca5844526fd6111e7a1e8bdfa9813673a6f23 (patch)
tree56d7b3765725d51da786f17b8a92dcce01a4db93 /t/t1091-sparse-checkout-builtin.sh
parentsparse-checkout: fix OOM error with mixed patterns (diff)
downloadgit-a3eca5844526fd6111e7a1e8bdfa9813673a6f23.tar.xz
git-a3eca5844526fd6111e7a1e8bdfa9813673a6f23.zip
sparse-checkout: refuse to add to bad patterns
When in cone mode sparse-checkout, it is unclear how 'git sparse-checkout add <dir1> ...' should behave if the existing sparse-checkout file does not match the cone mode patterns. Change the behavior to fail with an error message about the existing patterns. Also, all cone mode patterns start with a '/' character, so add that restriction. This is necessary for our example test 'cone mode: warn on bad pattern', but also requires modifying the example sparse-checkout file we use to test the warnings related to recognizing cone mode patterns. This error checking would cause a failure further down the test script because of a test that adds non-cone mode patterns without cleaning them up. Perform that cleanup as part of the test now. Reviewed-by: Elijah Newren <newren@gmail.com> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rwxr-xr-xt/t1091-sparse-checkout-builtin.sh7
1 files changed, 5 insertions, 2 deletions
diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh
index 1f877ced0c..34b97fd3ee 100755
--- a/t/t1091-sparse-checkout-builtin.sh
+++ b/t/t1091-sparse-checkout-builtin.sh
@@ -110,7 +110,8 @@ test_expect_success 'switching to cone mode with non-cone mode patterns' '
git sparse-checkout init &&
git sparse-checkout add dir &&
git config core.sparseCheckoutCone true &&
- git sparse-checkout add dir
+ test_must_fail git sparse-checkout add dir 2>err &&
+ grep "existing sparse-checkout patterns do not use cone mode" err
)
'
@@ -176,12 +177,14 @@ test_expect_success 'set sparse-checkout using --stdin' '
'
test_expect_success 'add to sparse-checkout' '
- cat repo/.git/info/sparse-checkout >expect &&
+ cat repo/.git/info/sparse-checkout >old &&
+ test_when_finished cp old repo/.git/info/sparse-checkout &&
cat >add <<-\EOF &&
pattern1
/folder1/
pattern2
EOF
+ cat old >expect &&
cat add >>expect &&
git -C repo sparse-checkout add --stdin <add &&
git -C repo sparse-checkout list >actual &&