File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -353,6 +353,11 @@ def _clone_repo(
353353 os.makedirs(module_abspath_dir)
354354 module_checkout_path = osp.join(str(repo.working_tree_dir), path)
355355
356+ if url.startswith('../'):
357+ remote_name = repo.active_branch.tracking_branch().remote_name
358+ repo_remote_url = repo.remote(remote_name).url
359+ url = os.path.join(repo_remote_url, url)
360+
356361 clone = git.Repo.clone_from(
357362 url,
358363 module_checkout_path,
Original file line number Diff line number Diff line change @@ -753,6 +753,22 @@ def test_add_empty_repo(self, rwdir):
753753 )
754754 # END for each checkout mode
755755
756+ @with_rw_directory
757+ @_patch_git_config("protocol.file.allow", "always")
758+ def test_update_submodule_with_relative_path(self, rwdir):
759+ repo_path = osp.join(rwdir, "parent")
760+ repo = git.Repo.init(repo_path)
761+ module_repo_path = osp.join(rwdir, "module")
762+ module_repo = git.Repo.init(module_repo_path)
763+ module_repo.git.commit(m="test", allow_empty=True)
764+ repo.git.submodule("add", "../module", "module")
765+ repo.index.commit("add submodule")
766+
767+ cloned_repo_path = osp.join(rwdir, "cloned_repo")
768+ cloned_repo = git.Repo.clone_from(repo_path, cloned_repo_path)
769+
770+ cloned_repo.submodule_update(init=True, recursive=True)
771+
756772 @with_rw_directory
757773 @_patch_git_config("protocol.file.allow", "always")
758774 def test_list_only_valid_submodules(self, rwdir):
You can’t perform that action at this time.
0 commit comments