Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to