From 4531259613699688cadbfe6dcc577ccf8a90eb8d Mon Sep 17 00:00:00 2001 From: Christian Halstrick Date: Tue, 9 Jun 2015 09:31:26 +0200 Subject: [PATCH] Add new submodule layout to SubmoduleAddCommand The new submodule layout where GITDIR of a submodule is located at /modules/ was only used during clone. Teach SubmoduleAddCommand to use the new layout. Bug: 469666 Change-Id: Ie97dc0607b71499560444616f362bccee9cce515 Signed-off-by: Matthias Sohn --- .../tst/org/eclipse/jgit/api/CloneCommandTest.java | 11 +++++++++++ .../src/org/eclipse/jgit/api/SubmoduleAddCommand.java | 2 ++ 2 files changed, 13 insertions(+) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java index 3b2fa6c37d..72cc51be98 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java @@ -391,6 +391,17 @@ public class CloneCommandTest extends RepositoryTestCase { git.add().addFilepattern(path) .addFilepattern(Constants.DOT_GIT_MODULES).call(); git.commit().setMessage("adding submodule").call(); + try (SubmoduleWalk walk = SubmoduleWalk.forIndex(git.getRepository())) { + assertTrue(walk.next()); + Repository subRepo = walk.getRepository(); + addRepoToClose(subRepo); + assertNotNull(subRepo); + assertEquals( + new File(git.getRepository().getWorkTree(), walk.getPath()), + subRepo.getWorkTree()); + assertEquals(new File(new File(git.getRepository().getDirectory(), + "modules"), walk.getPath()), subRepo.getDirectory()); + } File directory = createTempDirectory("testCloneRepositoryWithSubmodules"); CloneCommand clone = Git.cloneRepository(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleAddCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleAddCommand.java index 06c8f414e3..fbb24c1577 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleAddCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleAddCommand.java @@ -173,6 +173,8 @@ public class SubmoduleAddCommand extends CloneCommand clone = Git.cloneRepository(); configure(clone); clone.setDirectory(moduleDirectory); + clone.setGitDir(new File(new File(repo.getDirectory(), + Constants.MODULES), path)); clone.setURI(resolvedUri); if (monitor != null) clone.setProgressMonitor(monitor); -- 2.39.5