Fix svn revision in sources HAL links

This commit is contained in:
René Pfeuffer
2018-08-22 14:29:05 +02:00
parent 6a7987481a
commit 8320c75c89
2 changed files with 12 additions and 8 deletions

View File

@@ -36,17 +36,14 @@ package sonia.scm.repository.spi;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tmatesoft.svn.core.SVNDirEntry; import org.tmatesoft.svn.core.SVNDirEntry;
import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNNodeKind; import org.tmatesoft.svn.core.SVNNodeKind;
import org.tmatesoft.svn.core.SVNProperties; import org.tmatesoft.svn.core.SVNProperties;
import org.tmatesoft.svn.core.SVNProperty; import org.tmatesoft.svn.core.SVNProperty;
import org.tmatesoft.svn.core.io.SVNRepository; import org.tmatesoft.svn.core.io.SVNRepository;
import sonia.scm.repository.BrowserResult; import sonia.scm.repository.BrowserResult;
import sonia.scm.repository.FileObject; import sonia.scm.repository.FileObject;
import sonia.scm.repository.Repository; import sonia.scm.repository.Repository;
@@ -55,13 +52,12 @@ import sonia.scm.repository.SubRepository;
import sonia.scm.repository.SvnUtil; import sonia.scm.repository.SvnUtil;
import sonia.scm.util.Util; import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------
import java.io.IOException; import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
//~--- JDK imports ------------------------------------------------------------
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
@@ -143,6 +139,10 @@ public class SvnBrowseCommand extends AbstractSvnCommand
} }
} }
if (revisionNumber == -1) {
revisionNumber = svnRepository.getLatestRevision();
}
result = new BrowserResult(); result = new BrowserResult();
result.setRevision(String.valueOf(revisionNumber)); result.setRevision(String.valueOf(revisionNumber));
result.setFiles(children); result.setFiles(children);

View File

@@ -26,11 +26,15 @@ public abstract class FileObjectMapper extends BaseMapper<FileObject, FileObject
@AfterMapping @AfterMapping
void addLinks(FileObject fileObject, @MappingTarget FileObjectDto dto, @Context NamespaceAndName namespaceAndName, @Context String revision) { void addLinks(FileObject fileObject, @MappingTarget FileObjectDto dto, @Context NamespaceAndName namespaceAndName, @Context String revision) {
Links.Builder links = Links.linkingTo() Links.Builder links = Links.linkingTo()
.self(resourceLinks.source().sourceWithPath(namespaceAndName.getNamespace(), namespaceAndName.getName(), revision, fileObject.getPath())); .self(resourceLinks.source().sourceWithPath(namespaceAndName.getNamespace(), namespaceAndName.getName(), revision, removeFirstSlash(fileObject.getPath())));
if (!dto.isDirectory()) { if (!dto.isDirectory()) {
links.single(link("content", resourceLinks.source().content(namespaceAndName.getNamespace(), namespaceAndName.getName(), revision, fileObject.getPath()))); links.single(link("content", resourceLinks.source().content(namespaceAndName.getNamespace(), namespaceAndName.getName(), revision, removeFirstSlash(fileObject.getPath()))));
} }
dto.add(links.build()); dto.add(links.build());
} }
private String removeFirstSlash(String source) {
return source.startsWith("/") ? source.substring(1) : source;
}
} }