Bladeren bron

Merge "RefDirectory.getRef: Treat fake missing symrefs like real ones"

tags/v4.2.0.201601211800-r
Jonathan Nieder 8 jaren geleden
bovenliggende
commit
15e60b646e

+ 30
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java Bestand weergeven

@@ -857,6 +857,36 @@ public class RefDirectoryTest extends LocalDiskRepositoryTestCase {
assertNull("mising 1 due to cycle", r);
}

@Test
public void testGetRef_CycleInSymbolicRef() throws IOException {
Ref r;

writeLooseRef("refs/1", "ref: refs/2\n");
writeLooseRef("refs/2", "ref: refs/3\n");
writeLooseRef("refs/3", "ref: refs/4\n");
writeLooseRef("refs/4", "ref: refs/5\n");
writeLooseRef("refs/5", "ref: refs/end\n");
writeLooseRef("refs/end", A);

r = refdir.getRef("1");
assertEquals("refs/1", r.getName());
assertEquals(A, r.getObjectId());
assertTrue(r.isSymbolic());

writeLooseRef("refs/5", "ref: refs/6\n");
writeLooseRef("refs/6", "ref: refs/end\n");

r = refdir.getRef("1");
assertNull("missing 1 due to cycle", r);

writeLooseRef("refs/heads/1", B);

r = refdir.getRef("1");
assertEquals("refs/heads/1", r.getName());
assertEquals(B, r.getObjectId());
assertFalse(r.isSymbolic());
}

@Test
public void testGetRefs_PackedNotPeeled_Sorted() throws IOException {
Map<String, Ref> all;

+ 2
- 0
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java Bestand weergeven

@@ -294,6 +294,8 @@ public class RefDirectory extends RefDatabase {
ref = readRef(prefix + needle, packed);
if (ref != null) {
ref = resolve(ref, 0, null, null, packed);
}
if (ref != null) {
break;
}
} catch (IOException e) {

Laden…
Annuleren
Opslaan