This series continues the work to integrate commands with the sparse index, adding integrations with 'git clean', 'git checkout-index', and 'git update-index'. These three commands, while useful in their own right, are updated mainly because they're used in 'git stash'. A future series will integrate sparse index with 'stash' directly, but its subcommands must be integrated to avoid the performance cost of each one expanding and collapsing the index. The series is broken up into 4 parts: * Patches 1-2 are minor fixups to the 'git reset' sparse index integration in response to discussion [1] that came after the series was ready for merge to 'next'. * Patch 3 integrates 'git clean' with the sparse index. * Patches 4-6 integrate 'git checkout-index' with the sparse index and introduce a new '--ignore-skip-worktree-bits' option for use with 'git checkout-index --all'. * This involves changing the behavior of '--all' to respect 'skip-worktree' by default (i.e., it won't check out 'skip-worktree' files). The '--ignore-skip-worktree-bits' option can be specified to force checkout of 'skip-worktree' files, if desired. * Patches 7-9 integrate 'git update-index' with the sparse index. * Note that, although this integrates the sparse index with '--cacheinfo', sparse directories still cannot be updated using that option (see the prior discussion [2] for more details on why) Thanks! * Victoria [1] https://lore.kernel.org/git/CABPp-BG0iDHf268UAnRyA=0y0T69YTc+bLMdxCmSbrL8s=9ziA@xxxxxxxxxxxxxx/ [2] https://lore.kernel.org/git/a075091c-d0d4-db5d-fa21-c9d6c90c343e@xxxxxxxxx/ Victoria Dye (9): reset: fix validation in sparse index test reset: reorder wildcard pathspec conditions clean: integrate with sparse index checkout-index: expand sparse checkout compatibility tests checkout-index: add --ignore-skip-worktree-bits option checkout-index: integrate with sparse index update-index: add tests for sparse-checkout compatibility update-index: integrate with sparse index update-index: reduce scope of index expansion in do_reupdate Documentation/git-checkout-index.txt | 11 +- builtin/checkout-index.c | 40 +++- builtin/clean.c | 3 + builtin/reset.c | 12 +- builtin/update-index.c | 17 +- read-cache.c | 10 +- t/perf/p2000-sparse-operations.sh | 2 + t/t1092-sparse-checkout-compatibility.sh | 230 ++++++++++++++++++++++- 8 files changed, 306 insertions(+), 19 deletions(-) base-commit: dcc0cd074f0c639a0df20461a301af6d45bd582e Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1109%2Fvdye%2Fsparse%2Fupdate-index_checkout-index_clean-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1109/vdye/sparse/update-index_checkout-index_clean-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1109 -- gitgitgadget