Subject: Re: [PATCH v3 5/7] refresh_index(): add REFRESH_DONT_MARK_SPARSE_MATCHES flag

From: Junio C Hamano <[email-masked]>
Date: Thu, 18 Mar 2021 17:00:52 -0700

Junio C Hamano <[email-masked]> writes:

> Matheus Tavares <[email-masked]> writes:
>
>> refresh_index() optionally takes a seen[] array to mark the pathspec
>> items that had matches in the index. This is used by `git add --refresh`
>> to find out if there was any pathspec without matches, and display an
>> error accordingly.
>
> It smells a bit iffy in that this allows a path to "match" a pattern
> but yet not result in seen[] to record that the pattern participated
> in the match.  If the series is working towards certain operations
> not to touch paths that are outside the sparse checkout, shouldn't
> it be making these paths not to match the pattern, and by doing so
> it would automatically cause the pattern to be considered "not yet
> matching any path" when the matcher attempts to match the pattern to
> such a path?

In other words, the change makes me wonder why we are not adding a
flag that says "do we or do we not want to match paths outside the
sparse checkout cone?", with which the seen[] would automatically
record the right thing.