mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 09:46:16 +01:00
Sort svn files
This commit is contained in:
@@ -51,9 +51,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;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
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 org.tmatesoft.svn.core.SVNErrorCode.FS_NO_SUCH_REVISION;
|
||||||
import static sonia.scm.ContextEntry.ContextBuilder.entity;
|
import static sonia.scm.ContextEntry.ContextBuilder.entity;
|
||||||
import static sonia.scm.NotFoundException.notFound;
|
import static sonia.scm.NotFoundException.notFound;
|
||||||
@@ -130,7 +133,8 @@ public class SvnBrowseCommand extends AbstractSvnCommand
|
|||||||
FileObject parent, String basePath)
|
FileObject parent, String basePath)
|
||||||
throws SVNException
|
throws SVNException
|
||||||
{
|
{
|
||||||
Collection<SVNDirEntry> entries = svnRepository.getDir(parent.getPath(), revisionNumber, null, (Collection) null);
|
List<SVNDirEntry> entries = new ArrayList<>(svnRepository.getDir(parent.getPath(), revisionNumber, null, (Collection) null));
|
||||||
|
entries.sort(comparing(SVNDirEntry::getName));
|
||||||
for (Iterator<SVNDirEntry> iterator = entries.iterator(); resultCount < request.getLimit() + request.getOffset() && iterator.hasNext(); ++resultCount) {
|
for (Iterator<SVNDirEntry> iterator = entries.iterator(); resultCount < request.getLimit() + request.getOffset() && iterator.hasNext(); ++resultCount) {
|
||||||
SVNDirEntry entry = iterator.next();
|
SVNDirEntry entry = iterator.next();
|
||||||
FileObject child = createFileObject(request, svnRepository, revisionNumber, entry, basePath);
|
FileObject child = createFileObject(request, svnRepository, revisionNumber, entry, basePath);
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import sonia.scm.repository.FileObject;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
@@ -77,8 +78,9 @@ public class SvnBrowseCommandTest extends AbstractSvnCommandTestBase
|
|||||||
|
|
||||||
Collection<FileObject> foList = foList1;
|
Collection<FileObject> foList = foList1;
|
||||||
|
|
||||||
FileObject a = getFileObject(foList, "a.txt");
|
Iterator<FileObject> iterator = foList.iterator();
|
||||||
FileObject c = getFileObject(foList, "c");
|
FileObject a = iterator.next();
|
||||||
|
FileObject c = iterator.next();
|
||||||
|
|
||||||
assertFalse(a.isDirectory());
|
assertFalse(a.isDirectory());
|
||||||
assertEquals("a.txt", a.getName());
|
assertEquals("a.txt", a.getName());
|
||||||
@@ -113,20 +115,9 @@ public class SvnBrowseCommandTest extends AbstractSvnCommandTestBase
|
|||||||
assertFalse(foList.isEmpty());
|
assertFalse(foList.isEmpty());
|
||||||
assertEquals(2, foList.size());
|
assertEquals(2, foList.size());
|
||||||
|
|
||||||
FileObject d = null;
|
Iterator<FileObject> iterator = foList.iterator();
|
||||||
FileObject e = null;
|
FileObject d = iterator.next();
|
||||||
|
FileObject e = iterator.next();
|
||||||
for (FileObject f : foList)
|
|
||||||
{
|
|
||||||
if ("d.txt".equals(f.getName()))
|
|
||||||
{
|
|
||||||
d = f;
|
|
||||||
}
|
|
||||||
else if ("e.txt".equals(f.getName()))
|
|
||||||
{
|
|
||||||
e = f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
assertNotNull(d);
|
assertNotNull(d);
|
||||||
assertFalse(d.isDirectory());
|
assertFalse(d.isDirectory());
|
||||||
@@ -198,7 +189,7 @@ public class SvnBrowseCommandTest extends AbstractSvnCommandTestBase
|
|||||||
|
|
||||||
Collection<FileObject> foList = result.getFile().getChildren();
|
Collection<FileObject> foList = result.getFile().getChildren();
|
||||||
|
|
||||||
assertThat(foList).extracting("name").containsExactlyInAnyOrder("a.txt");
|
assertThat(foList).extracting("name").containsExactly("a.txt");
|
||||||
assertThat(result.getFile().isTruncated()).isTrue();
|
assertThat(result.getFile().isTruncated()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,7 +203,7 @@ public class SvnBrowseCommandTest extends AbstractSvnCommandTestBase
|
|||||||
|
|
||||||
Collection<FileObject> foList = result.getFile().getChildren();
|
Collection<FileObject> foList = result.getFile().getChildren();
|
||||||
|
|
||||||
assertThat(foList).extracting("name").containsExactlyInAnyOrder("c");
|
assertThat(foList).extracting("name").containsExactly("c");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user