From 9271da85a5b8fe4c76e6c5ecaee047a83f7045d9 Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Wed, 7 Oct 2020 17:37:59 +0200 Subject: [PATCH] fix svn browse command external directory --- .../scm/repository/spi/SvnBrowseCommand.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SvnBrowseCommand.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SvnBrowseCommand.java index 573184ea1f..c75925f7b4 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SvnBrowseCommand.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/spi/SvnBrowseCommand.java @@ -46,7 +46,6 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; -import static java.util.Comparator.comparing; import static org.tmatesoft.svn.core.SVNErrorCode.FS_NO_SUCH_REVISION; import static sonia.scm.ContextEntry.ContextBuilder.entity; import static sonia.scm.NotFoundException.notFound; @@ -196,21 +195,30 @@ public class SvnBrowseCommand extends AbstractSvnCommand String externals = properties.getStringValue(SVNProperty.EXTERNALS).replaceAll("[\\r\\n]+", ""); String[] externalsArray = externals.split(" "); + String subRepoName = ""; for (String external : externalsArray) { if (shouldSetExternal(external)) { externals = external; + } else if (!external.contains("-r") && !external.isEmpty()) { + subRepoName = external; } } if (Util.isNotEmpty(externals)) { SubRepository subRepository = new SubRepository(externals); - - FileObject subRepositoryDirectory = new FileObject(); - subRepositoryDirectory.setSubRepository(subRepository); - fileObject.addChild(subRepositoryDirectory); + fileObject.addChild(createSubRepoDirectory(subRepository, subRepoName)); } } catch (SVNException ex) { logger.error("could not fetch file properties", ex); } } + + private FileObject createSubRepoDirectory(SubRepository subRepository, String subRepoName) { + FileObject subRepositoryDirectory = new FileObject(); + subRepositoryDirectory.setPath(subRepoName); + subRepositoryDirectory.setName(subRepoName); + subRepositoryDirectory.setDirectory(true); + subRepositoryDirectory.setSubRepository(subRepository); + return subRepositoryDirectory; + } }