From d82fce127e5913129b635eaca1e9c965939e3cd3 Mon Sep 17 00:00:00 2001 From: Marek Zawirski Date: Mon, 21 Jul 2008 14:39:19 +0200 Subject: [PATCH] Fix Repository.getAllRefs to skip HEAD if it points to an unborn branch If HEAD is a symbolic reference pointing to an unborn branch (branch not yet created) we get a Ref object back for it supplying the name of the branch, but its ObjectId is null as the branch file itself is not present in the repository. In such cases we should not include the HEAD reference in the returned output. Signed-off-by: Marek Zawirski Signed-off-by: Shawn O. Pearce --- org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java index 82b995e7..b9c8c8cf 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java @@ -209,7 +209,9 @@ class RefDatabase { readPackedRefs(avail); readLooseRefs(avail, REFS_SLASH, refsDir); try { - avail.put(Constants.HEAD, readRefBasic(Constants.HEAD, 0)); + final Ref r = readRefBasic(Constants.HEAD, 0); + if (r != null && r.getObjectId() != null) + avail.put(Constants.HEAD, r); } catch (IOException e) { // ignore here } -- 2.11.4.GIT