Compared to the current series in pu, patch "Teach Git to respect skip-worktree (reading part)" has been broken up into smaller patches. builtin-commit.c is also fixed to make the two failed test cases in t7011 now pass. Skip-worktree bit no longer relies on CE_MATCH_IGNORE_VALID flag, which means "git update-index --really-refresh" respects skip-worktree bit too. The rest is unchanged. Nguyễn Thái Ngọc Duy (23): update-index: refactor mark_valid() in preparation for new options Add test-index-version Introduce "skip-worktree" bit in index, teach Git to get/set this bit update-index: ignore update request if it's skip-worktree Teach ls-files and update-index to respect skip-worktree bit Teach diff machinery to respect skip-worktree bit Teach grep to respect skip-worktree bit Teach commit to respect skip-worktree bit Teach Git to respect skip-worktree bit (writing part) Avoid writing to buffer in add_excludes_from_file_1() Read .gitignore from index if it is skip-worktree unpack-trees(): carry skip-worktree bit over in merged_entry() excluded_1(): support exclude files in index dir.c: export excluded_1() and add_excludes_from_file_1() Introduce "sparse checkout" unpack-trees(): add CE_WT_REMOVE to remove on worktree alone unpack-trees.c: generalize verify_* functions unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index unpack-trees(): ignore worktree check outside checkout area read-tree: add --no-sparse-checkout to disable sparse checkout support Add tests for sparse checkout sparse checkout: inhibit empty worktree .gitignore | 1 + Documentation/config.txt | 4 + Documentation/git-ls-files.txt | 1 + Documentation/git-read-tree.txt | 52 ++++++- Documentation/git-update-index.txt | 29 ++++ Documentation/technical/api-directory-listing.txt | 3 + Makefile | 1 + builtin-apply.c | 2 +- builtin-clean.c | 4 +- builtin-commit.c | 11 +- builtin-grep.c | 2 +- builtin-ls-files.c | 11 +- builtin-read-tree.c | 4 +- builtin-update-index.c | 78 ++++++---- cache.h | 10 +- config.c | 5 + diff-lib.c | 5 +- diff.c | 2 +- dir.c | 100 ++++++++---- dir.h | 4 + entry.c | 2 +- environment.c | 1 + read-cache.c | 17 ++- t/t1011-read-tree-sparse-checkout.sh | 150 +++++++++++++++++ t/t2104-update-index-skip-worktree.sh | 57 +++++++ t/t3001-ls-files-others-exclude.sh | 22 +++ t/t7011-skip-worktree-reading.sh | 158 ++++++++++++++++++ t/t7012-skip-worktree-writing.sh | 139 ++++++++++++++++ t/t7300-clean.sh | 19 +++ test-index-version.c | 14 ++ unpack-trees.c | 181 +++++++++++++++++++-- unpack-trees.h | 6 + 32 files changed, 994 insertions(+), 101 deletions(-) create mode 100755 t/t1011-read-tree-sparse-checkout.sh create mode 100755 t/t2104-update-index-skip-worktree.sh create mode 100755 t/t7011-skip-worktree-reading.sh create mode 100755 t/t7012-skip-worktree-writing.sh create mode 100644 test-index-version.c -- 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