This series provides a replacement for the git read-tree -mu HEAD-based sparsity updating used by sparse-checkout, fixing the myriad problems it causes. The most important bit is patch 5 and its lengthy commit message explaining the current state and rationale. Consider the series RFC for now; I probably need to add some tests, get some people at work who are willing to test it in real cases, and get some community feedback particularly on the choices/comments highlighted in the commit message to patch 5. But it's at least basically functional so I wanted to send it out to the community for feedback. Elijah Newren (7): unpack-trees: fix minor typo in comment t1091: make some tests a little more defensive against failures unpack-trees: allow check_updates() to work on a different index unpack-trees: do not mark a dirty path with SKIP_WORKTREE unpack-trees: add a new update_sparsity() function sparse-checkout: use new update_sparsity() function sparse-checkout: provide a new update subcommand Documentation/git-sparse-checkout.txt | 10 +++ builtin/sparse-checkout.c | 49 ++++------- t/t1091-sparse-checkout-builtin.sh | 34 ++++++-- unpack-trees.c | 119 ++++++++++++++++++++++++-- unpack-trees.h | 2 + 5 files changed, 169 insertions(+), 45 deletions(-) base-commit: 30e9940356dc67959877f4b2417da33ebdefbb79 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-726%2Fnewren%2Fsparse-checkout-improvements-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-726/newren/sparse-checkout-improvements-v1 Pull-Request: https://github.com/git/git/pull/726 -- gitgitgadget