Let's restart this. From the last discussion [1], we need to make core.worktree per-worktree for submodules to work. We also need core.sparseCheckout per-worktree. This series adds a pattern list, with .gitignore syntax mostly, that split config var set into two sets, the per-worktree set will be stored in .git/worktrees/*/config.worktree instead. The pattern list consists of default patterns, built in git binary, and user ones in .git/info/config.worktree. I have marked a few obvious config vars as per-worktree. There may be more to mark, Max did go over them last time so I'll let him to add more if submodule needs it. [1] http://article.gmane.org/gmane.comp.version-control.git/266520 Nguyễn Thái Ngọc Duy (5): dir.c: clean the entire struct in clear_exclude_list() config.c: move worktree-specific variables to .git/worktrees/... setup.c: remove special case of core.worktree and core.bare worktree: make core.sparseCheckout and core.ignoreStat per-worktree git-worktree.txt: mention about the config file split Documentation/config.txt | 13 ++- Documentation/git-worktree.txt | 13 +++ Documentation/gitrepository-layout.txt | 12 +++ builtin/config.c | 9 ++ cache.h | 2 +- config.c | 153 +++++++++++++++++++++++++++++++-- dir.c | 6 +- dir.h | 1 + setup.c | 62 ++++++------- t/t2025-worktree-add.sh | 26 ++++++ 10 files changed, 250 insertions(+), 47 deletions(-) -- 2.2.0.513.g477eb31 -- 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