]> source.dussan.org Git - jgit.git/commit
Use project names instead of paths for the submodule name 74/126574/6
authorMasaya Suzuki <masayasuzuki@google.com>
Tue, 24 Jul 2018 18:53:39 +0000 (11:53 -0700)
committerMasaya Suzuki <masayasuzuki@google.com>
Fri, 27 Jul 2018 22:07:30 +0000 (15:07 -0700)
commit6658f367682932c0a77061a5aa37c06e480a0c62
treedb6ccece58376db10a986e987f99b06ac1dc6816
parente0e52cb0110a908959f7df13c5e66bf911bad74f
Use project names instead of paths for the submodule name

Two submodules at the same path on different branches need not represent
the same repository, and two submodules at different paths can represent
the same one.

The C Git implementation uses the submodule name to internally manage
the submodule repositories under .git/modules. When a submodule
represents different repositories in different branches, it makes a
conflict inside .git/modules.

The current RepoCommand implementation uses submodule paths as the
submodule names. When the manifest file mounts different repositories to
the same path in different branches, this makes a situation described
above. To solve this issue, we can use the project name instead of
the path as the submodule name.

On the other hand, since repo v1.12.8~3^2 (repo: Support multiple
branches for the same project., 2013-10-11), a manifest file can mount
the same project to different paths. If we naively use the project
name as the submodule name, it makes a conflict in .git/modules, too.

This patch uses the project name as the submodule name basically, but
when the same project is mounted to different paths, it uses the project
name and path as the submodule name.

Change-Id: I09dc7d62ba59016fe28852d3139a56ef7ef49b8f
Signed-off-by: Masaya Suzuki <masayasuzuki@google.com>
Reported-by: JP Sugarbroad <jpsugar@google.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java
org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java