"Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> 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.