diff options
author | Kevin Sawicki | 2012-01-26 22:59:50 +0000 |
---|---|---|
committer | Matthias Sohn | 2012-01-26 22:59:50 +0000 |
commit | 0658d4b95b5de54c58bd3b4ee137fb0b0fa8cd3c (patch) | |
tree | fde3ca12095f091ad61660259411104be287fb3e /org.eclipse.egit.ui | |
parent | db038ced9db66ef96ca42501aab81dea4df69fa3 (diff) | |
download | egit-0658d4b95b5de54c58bd3b4ee137fb0b0fa8cd3c.tar.gz egit-0658d4b95b5de54c58bd3b4ee137fb0b0fa8cd3c.tar.xz egit-0658d4b95b5de54c58bd3b4ee137fb0b0fa8cd3c.zip |
[repoView] Hide 'Submodules' node when no configuration exists
Only show the 'Submodules' node when the repository either
contains a '.gitmodules' file or has at least one 'submodule'
section in the config file
Bug: 367955
Change-Id: I1b8575bed7f018e1d4ee7273c4b83c8044232822
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.egit.ui')
-rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java index 8c473f4592..2e57450872 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java @@ -61,6 +61,7 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jgit.events.ListenerHandle; import org.eclipse.jgit.events.RefsChangedEvent; import org.eclipse.jgit.events.RefsChangedListener; +import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefDatabase; @@ -309,7 +310,7 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider, if (!repo.isBare()) nodeList.add(new WorkingDirNode(node, repo)); nodeList.add(new RemotesNode(node, repo)); - if (!repo.isBare()) + if (!repo.isBare() && hasConfiguredSubmodules(repo)) nodeList.add(new SubmodulesNode(node, repo)); return nodeList.toArray(); @@ -544,4 +545,21 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider, return filtered; } + /** + * Does the repository have any submodule configurations? + * <p> + * This method checks for a '.gitmodules' file at the root of the working + * directory or any 'submodule' sections in the repository's config file + * + * @param repository + * @return true if submodules, false otherwise + */ + private boolean hasConfiguredSubmodules(final Repository repository) { + if (new File(repository.getWorkTree(), Constants.DOT_GIT_MODULES) + .isFile()) + return true; + return !repository.getConfig() + .getSubsections(ConfigConstants.CONFIG_SUBMODULE_SECTION) + .isEmpty(); + } } |