diff options
author | Stefan Beller <sbeller@google.com> | 2018-03-28 15:35:31 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-29 09:44:51 -0700 |
commit | da62f786d2df60f3c8255cf4cbbcd9c1f9458d99 (patch) | |
tree | 9a0a2c11baadcabfbdd1c4044e7252a3b8862af4 /builtin/submodule--helper.c | |
parent | submodule-config: remove submodule_from_cache (diff) | |
download | tgif-da62f786d2df60f3c8255cf4cbbcd9c1f9458d99.tar.xz |
submodule: fixup nested submodules after moving the submodule
connect_work_tree_and_git_dir is used to connect a submodule worktree with
its git directory and vice versa after events that require a reconnection
such as moving around the working tree. As submodules can have nested
submodules themselves, we'd also want to fix the nested submodules when
asked to. Add an option to recurse into the nested submodules and connect
them as well.
As submodules are identified by their name (which determines their git
directory in relation to their superproject's git directory) internally
and by their path in the working tree of the superproject, we need to
make sure that the mapping of name <-> path is kept intact. We can do
that in the git-mv command by writing out the gitmodules file first
and then forcing a reload of the submodule config machinery.
Signed-off-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/submodule--helper.c')
-rw-r--r-- | builtin/submodule--helper.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 5551cf19c3..ffdc51f426 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1260,8 +1260,7 @@ static int module_clone(int argc, const char **argv, const char *prefix) strbuf_reset(&sb); } - /* Connect module worktree and git dir */ - connect_work_tree_and_git_dir(path, sm_gitdir); + connect_work_tree_and_git_dir(path, sm_gitdir, 0); p = git_pathdup_submodule(path, "config"); if (!p) |