Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- Documentation/git-worktree.txt | 8 ++++++++ git-submodule.sh | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt index 41350db..2a5661d 100644 --- a/Documentation/git-worktree.txt +++ b/Documentation/git-worktree.txt @@ -142,6 +142,14 @@ to share to all working directories: you are sure you always use sparse checkout for all working directories. + - `submodule.*` in current state should not be shared because the + information is tied to a particular version of .gitmodules in a + working directory. + + - `remote.*` added by submodules may be per working directory as + well, unless you are sure remotes from all possible submodules in + history are consistent. + DETAILS ------- Each linked working tree has a private sub-directory in the repository's diff --git a/git-submodule.sh b/git-submodule.sh index 4ec7546..7b576f5 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -261,7 +261,7 @@ or you are unsure what this means choose another name with the '--name' option." esac ) || die "$(eval_gettext "Unable to checkout submodule '\$sm_path'")" fi - git config submodule."$sm_name".url "$realrepo" + git config --worktree submodule."$sm_name".url "$realrepo" git add $force "$sm_path" || die "$(eval_gettext "Failed to add submodule '\$sm_path'")" @@ -461,7 +461,7 @@ Submodule work tree '\$displaypath' contains a .git directory # Remove the whole section so we have a clean state when # the user later decides to init this submodule again url=$(git config submodule."$name".url) - git config --remove-section submodule."$name" 2>/dev/null && + git config --worktree --remove-section submodule."$name" 2>/dev/null && say "$(eval_gettext "Submodule '\$name' (\$url) unregistered for path '\$displaypath'")" fi done @@ -1106,7 +1106,7 @@ cmd_sync() then displaypath=$(git submodule--helper relative-path "$prefix$sm_path" "$wt_prefix") say "$(eval_gettext "Synchronizing submodule url for '\$displaypath'")" - git config submodule."$name".url "$super_config_url" + git config --worktree submodule."$name".url "$super_config_url" if test -e "$sm_path"/.git then @@ -1114,7 +1114,7 @@ cmd_sync() sanitize_submodule_env cd "$sm_path" remote=$(get_default_remote) - git config remote."$remote".url "$sub_origin_url" + git config --worktree remote."$remote".url "$sub_origin_url" if test -n "$recursive" then -- 2.9.1.566.gbd532d4 -- 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