diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java index a299d144d..371e139a8 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java @@ -887,9 +887,8 @@ public class CommitBuilder { branch = b; Ref ref = db.getRef(branch.ref); - if (ref != null) { + if (ref != null && ref.getObjectId() != null) parent(pool.parseCommit(ref.getObjectId())); - } } CommitBuilder(CommitBuilder prior) throws Exception { diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/junit/TestRepositoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/junit/TestRepositoryTest.java index cc8ed504d..87ce01176 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/junit/TestRepositoryTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/junit/TestRepositoryTest.java @@ -265,6 +265,16 @@ public void amendCommit() throws Exception { assertEquals("bar contents", blobAsString(amended, "bar")); } + @Test + public void commitToUnbornHead() throws Exception { + repo.updateRef("HEAD").link("refs/heads/master"); + RevCommit root = tr.branch("HEAD").commit().create(); + Ref ref = repo.getRef(Constants.HEAD); + assertEquals(root, ref.getObjectId()); + assertTrue(ref.isSymbolic()); + assertEquals("refs/heads/master", ref.getTarget().getName()); + } + private String blobAsString(AnyObjectId treeish, String path) throws Exception { RevObject obj = tr.get(rw.parseTree(treeish), path);