From: Charles O'Farrell Date: Fri, 22 Aug 2008 22:45:45 GMT Subject: [JGIT PATCH 2/4] Fixed bug where RefUpdate didn't delete identical HEAD branch Message-ID: <1219445147-6801-3-git-send-email-charleso@charleso.org> In-Reply-To: <1219445147-6801-2-git-send-email-charleso@charleso.org> Signed-off-by: Charles O'Farrell --- .../src/org/spearce/jgit/lib/RefUpdate.java | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefUpdate.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefUpdate.java index aa2cecb..34a784b 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefUpdate.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefUpdate.java @@ -359,7 +359,7 @@ private Result updateImpl(final RevWalk walk, final Store store) newObj = safeParse(walk, newValue); oldObj = safeParse(walk, oldValue); if (newObj == oldObj) - return Result.NO_CHANGE; + return store.store(lock, Result.NO_CHANGE); if (newObj instanceof RevCommit && oldObj instanceof RevCommit) { if (walk.isMergedInto((RevCommit) oldObj, (RevCommit) newObj)) @@ -390,6 +390,8 @@ private static RevObject safeParse(final RevWalk rw, final AnyObjectId id) private Result updateStore(final LockFile lock, final Result status) throws IOException { + if (status == Result.NO_CHANGE) + return status; lock.setNeedStatInformation(true); lock.write(newValue); String msg = getRefLogMessage(); -- 1.6.0.49.gea35