Another RFC, which is more usable than the last series I sent out. Compared to the last one, a few more patches have gone the way of Dodo; 'git shape-workdir' has become a hook and should be easier to write too. All you need is a few "git update-index --[no-]assume-unchanged" in .git/hooks/sparse. Nguy�n Thái Ng�c Duy (4): Prevent diff machinery from examining assume-unchanged entries on worktree gitignore: read from index if .gitignore is assume-unchanged unpack_trees(): add support for sparse checkout read-tree: add --no-sparse to turn off sparse hook Documentation/technical/api-directory-listing.txt | 3 + builtin-clean.c | 5 +- builtin-ls-files.c | 4 +- builtin-read-tree.c | 4 +- cache.h | 3 + diff-lib.c | 5 +- dir.c | 70 +++++++--- t/t1009-read-tree-sparse.sh | 48 +++++++ t/t3001-ls-files-others-exclude.sh | 20 +++ t/t4039-diff-assume-unchanged.sh | 31 ++++ t/t7300-clean.sh | 19 +++ unpack-trees.c | 154 ++++++++++++++++++++- unpack-trees.h | 3 + 13 files changed, 335 insertions(+), 34 deletions(-) create mode 100755 t/t1009-read-tree-sparse.sh create mode 100755 t/t4039-diff-assume-unchanged.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html