Subject: Re: [PATCH v9 00/16] Sparse-index: integrate with status

From: Junio C Hamano <[email-masked]>
Date: Wed, 14 Jul 2021 13:37:25 -0700

"Derrick Stolee via GitGitGadget" <[email-masked]> writes:

> This is the first "payoff" series in the sparse-index work. It makes 'git
> status' very fast when a sparse-index is enabled on a repository with
> cone-mode sparse-checkout (and a small populated set).

The first payoff turning out to be  a long time coming ;-)

> This is based on ds/sparse-index-protections AND mt/add-rm-sparse-checkout.
> The latter branch is needed because it changes the behavior of 'git add'
> around sparse entries, which changes the expectations of a test added in
> patch 1.
>
> The approach here is to audit the places where ensure_full_index() pops up
> while doing normal commands with pathspecs within the sparse-checkout
> definition. Each of these are checked and tested. In the end, the
> sparse-index is integrated with these features:
>
>  * git status
>  * FS Monitor index extension.

I said this alreayd but I think the approach makes sense.  One
related tangent that makes me wonder is if we can teach "ls-files"
to help scriptors with a mode that does not pretend we have the full
index (i.e. when asked to show sparse index state, "ls-files
--sparse" would show the same output as "ls-files --stage" without
expanding each tree entry in the index into its flattend list of
paths).

Thanks.