Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java13
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java2
2 files changed, 15 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java
index a61580dd1f..56e5549b84 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java
@@ -456,6 +456,19 @@ public class RefDirectoryTest extends LocalDiskRepositoryTestCase {
}
@Test
+ public void testGetRefs_LooseSortedCorrectly() throws IOException {
+ Map<String, Ref> refs;
+
+ writeLooseRef("refs/heads/project1/A", A);
+ writeLooseRef("refs/heads/project1-B", B);
+
+ refs = refdir.getRefs(RefDatabase.ALL);
+ assertEquals(2, refs.size());
+ assertEquals(A, refs.get("refs/heads/project1/A").getObjectId());
+ assertEquals(B, refs.get("refs/heads/project1-B").getObjectId());
+ }
+
+ @Test
public void testGetRefs_TagsOnly_AllPacked() throws IOException {
Map<String, Ref> tags;
Ref a;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java
index bba634a6b6..cd199dcf92 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java
@@ -288,6 +288,7 @@ public class RefDirectory extends RefDatabase {
RefList<LooseRef> loose;
if (scan.newLoose != null) {
+ scan.newLoose.sort();
loose = scan.newLoose.toRefList();
if (looseRefs.compareAndSet(oldLoose, loose))
modCnt.incrementAndGet();
@@ -312,6 +313,7 @@ public class RefDirectory extends RefDatabase {
loose = loose.remove(toRemove);
}
}
+ symbolic.sort();
return new RefMap(prefix, packed, upcast(loose), symbolic.toRefList());
}

Back to the top