diff options
author | John Dallaway <john@dallaway.org.uk> | 2020-09-02 14:15:23 +0100 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2020-10-25 22:24:17 +0100 |
commit | f4b4dae2be1f6bb7e09a0c660e7fc8e093fb0617 (patch) | |
tree | 8f71b06b5a7f6da5e23581e2bd656d3ec479cdff | |
parent | 8269587f4927e3fc14624efcdd05427034782ee5 (diff) | |
download | jgit-f4b4dae2be1f6bb7e09a0c660e7fc8e093fb0617.tar.gz jgit-f4b4dae2be1f6bb7e09a0c660e7fc8e093fb0617.zip |
Ensure .gitmodules is loaded when accessing submodule name
This problem occurred when calling SubmoduleWalk#getModuleName if the
first submodule processed has a name and a path which do not match
SubmoduleWalk#getModuleName returned the module path instead of the
module name. In order to fix this SubmoduleWalk#getModuleName needs to
ensure that the modules config is loaded.
Bug: 565776
Change-Id: I36ce1fbc64c4849f9d8e39864b825c6e28d344f8
Signed-off-by: John Dallaway <john@dallaway.org.uk>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
3 files changed, 9 insertions, 1 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java index 70175c8205..ea994f06aa 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleWalkTest.java @@ -455,6 +455,7 @@ public class SubmoduleWalkTest extends RepositoryTestCase { final CanonicalTreeParser p = new CanonicalTreeParser(); p.reset(testDb.getRevWalk().getObjectReader(), commit.getTree()); try (SubmoduleWalk gen = SubmoduleWalk.forPath(db, p, "sub")) { + assertEquals(arbitraryName, gen.getModuleName()); assertEquals(path, gen.getPath()); assertEquals(subId, gen.getObjectId()); assertEquals(new File(db.getWorkTree(), path), gen.getDirectory()); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleDeinitCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleDeinitCommand.java index ac17d3a642..f4b8ac2e07 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleDeinitCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/SubmoduleDeinitCommand.java @@ -20,8 +20,10 @@ import java.util.Collections; import java.util.List; import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.api.errors.InvalidConfigurationException; import org.eclipse.jgit.api.errors.JGitInternalException; import org.eclipse.jgit.api.errors.NoHeadException; +import org.eclipse.jgit.errors.ConfigInvalidException; import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.ObjectId; @@ -119,6 +121,8 @@ public class SubmoduleDeinitCommand } } return results; + } catch (ConfigInvalidException e) { + throw new InvalidConfigurationException(e.getMessage(), e); } catch (IOException e) { throw new JGitInternalException(e.getMessage(), e); } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java index 0ba5eb542d..bf77021b0c 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java @@ -657,8 +657,11 @@ public class SubmoduleWalk implements AutoCloseable { * * @since 4.10 * @return name + * @throws ConfigInvalidException + * @throws IOException */ - public String getModuleName() { + public String getModuleName() throws IOException, ConfigInvalidException { + lazyLoadModulesConfig(); return getModuleName(path); } |