On 9/21/2021 4:45 PM, Taylor Blau wrote: > On Tue, Sep 21, 2021 at 02:56:01PM -0400, Derrick Stolee wrote: >>> I thought that it might have been related to your third patch to change >>> how bad patterns are detected. But I ran the following script after >>> applying each of your three patches individually: >>> >>> rm -fr repo >>> git init repo >>> cd repo >>> >>> git sparse-checkout init >>> git sparse-checkout add foo >>> git sparse-checkout init --cone >>> git sparse-checkout add foo >>> >>> and the only difference is that we started silently dropping the bad >>> "foo" pattern after re-adding foo in cone-mode starting with the second >>> patch. >> >> In patch 2, we "detect" that the old patterns were not in cone mode >> because the core.sparseCheckoutCone config is false when parsing the >> patterns, so use_cone_patterns is 0. > > I fear that we're talking about different things. With your patches, if > I munge my .git/info/sparse-checkout file, I can easily get something > like: > > $ git.compile sparse-checkout list > warning: unrecognized pattern: 'foo' > warning: disabling cone pattern matching > > to appear. But I'm wondering why the same doesn't happen when running > `git sparse-checkout init --cone` while the existing sparse-checkout > definition contains non-cone mode entries. You don't get that warning because it's not trying to parse the previous patterns using cone mode. Before my series, you would get the warning in a _second_ run of "git sparse-checkout init --cone". We should add a different warning for overwriting the existing patterns. Thanks, -Stolee