On 9/19/2019 4:59 PM, Derrick Stolee wrote: > On 9/19/2019 10:43 AM, Derrick Stolee via GitGitGadget wrote: >> @@ -848,6 +953,10 @@ static int add_patterns_from_buffer(char *buf, size_t size, >> int i, lineno = 1; >> char *entry; >> >> + pl->use_cone_patterns = core_sparse_checkout_cone; >> + hashmap_init(&pl->recursive_hashmap, pl_hashmap_cmp, NULL, 0); >> + hashmap_init(&pl->parent_hashmap, pl_hashmap_cmp, NULL, 0); >> + > > Just a head's-up to anyone looking at this series: this is not the > right place to set use_cone_patterns (without passing a flag or > something). This same path is called from the .gitignore machinery, > so if you have a non-cone pattern in your .gitignore you will start > seeing warnings with core.sparseCheckoutCone=true. > > I figured it out only via integration tests with our C# layer. In > v2 I'll fix this and add a test to make sure it stays fixed. Here is the code fix. I will have a test to check this in v3. -->8-- >From 73b100d11d11bf8f045c2e116390120819dcb800 Mon Sep 17 00:00:00 2001 From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> Date: Fri, 20 Sep 2019 08:55:06 -0400 Subject: [PATCH v2] fixup! sparse-checkout: use hashmaps for cone patterns --- dir.c | 1 - unpack-trees.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dir.c b/dir.c index 35fd60d487..248a418379 100644 --- a/dir.c +++ b/dir.c @@ -953,7 +953,6 @@ static int add_patterns_from_buffer(char *buf, size_t size, int i, lineno = 1; char *entry; - pl->use_cone_patterns = core_sparse_checkout_cone; hashmap_init(&pl->recursive_hashmap, pl_hashmap_cmp, NULL, 0); hashmap_init(&pl->parent_hashmap, pl_hashmap_cmp, NULL, 0); diff --git a/unpack-trees.c b/unpack-trees.c index 43acc0ffd6..b5cf591c38 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1487,6 +1487,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options o->skip_sparse_checkout = 1; if (!o->skip_sparse_checkout) { char *sparse = git_pathdup("info/sparse-checkout"); + pl.use_cone_patterns = core_sparse_checkout_cone; if (add_patterns_from_file_to_list(sparse, "", 0, &pl, NULL) < 0) o->skip_sparse_checkout = 1; else -- 2.23.0.vfs.1.1.19.gce6e76d