Hi, I rip most of the code from my sparse checkout series, leaving only basic stuff. Now there is no CE_NO_CHECKOUT bit (CE_VALID will be used), no sparse pattterns. You will need to provide a script, namely "git-shape-workdir", to specify how you want to shape your workdir. That's all. No porcelain, only plumbing. Need to add some options to read-tree and checkout in order to enable/disable this, but I haven't got that far. The first four patches is more or less CE_VALID fixups. Real stuff is in the last patch. Sparse patterns may return as a separate script. Currently no idea how the porcelain UI should be. The only thing that is probably impossible this way is "git clone --sparse". You may need to "clone -n" first, then apply sparse checkout later. Comments? Nguy�n Thái Ng�c Duy (5): Prevent diff machinery from examining worktree outside sparse checkout grep: skip files outside sparse checkout area gitignore: read from index if .gitignore is not in worktree unpack_trees(): keep track of unmerged entries unpack_trees(): add support for sparse checkout Documentation/git-grep.txt | 4 +- builtin-grep.c | 7 ++- builtin-read-tree.c | 6 ++- cache.h | 4 + diff-lib.c | 5 +- diff.c | 4 +- dir.c | 70 ++++++++++++------ t/t3001-ls-files-others-exclude.sh | 20 +++++ unpack-trees.c | 140 ++++++++++++++++++++++++++++++++++-- unpack-trees.h | 4 + 10 files changed, 229 insertions(+), 35 deletions(-) -- 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