From 63669b67f0f1402be909d8bee802d8db7e785ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Wed, 10 Oct 2018 11:49:49 +0200 Subject: [PATCH] Detect browse command for root dir correctly in git --- .../java/sonia/scm/repository/spi/GitBrowseCommand.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitBrowseCommand.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitBrowseCommand.java index 25a4ced3fe..e459d79653 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitBrowseCommand.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/spi/GitBrowseCommand.java @@ -286,7 +286,7 @@ public class GitBrowseCommand extends AbstractGitCommand logger.debug("load repository browser for revision {}", revId.name()); treeWalk = new TreeWalk(repo); - if (!Strings.isNullOrEmpty(request.getPath()) && !"/".equals(request.getPath())) { + if (!isRootRequest(request)) { treeWalk.setFilter(PathFilter.create(request.getPath())); } revWalk = new RevWalk(repo); @@ -303,7 +303,7 @@ public class GitBrowseCommand extends AbstractGitCommand logger.error("could not find tree for {}", revId.name()); } - if (Strings.isNullOrEmpty(request.getPath())) { + if (isRootRequest(request)) { result = createEmtpyRoot(); findChildren(result, repo, request, revId, treeWalk); } else { @@ -324,6 +324,10 @@ public class GitBrowseCommand extends AbstractGitCommand return result; } + private boolean isRootRequest(BrowseCommandRequest request) { + return Strings.isNullOrEmpty(request.getPath()) || "/".equals(request.getPath()); + } + private FileObject findChildren(FileObject parent, org.eclipse.jgit.lib.Repository repo, BrowseCommandRequest request, ObjectId revId, TreeWalk treeWalk) throws IOException, RevisionNotFoundException { List files = Lists.newArrayList(); while (treeWalk.next())