From 90b8d7e0e1b5e5ed296c1213168b9a8937ac66fd Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 02 Feb 2012 20:02:40 -0500
Subject: [PATCH] Refactored and unit tested updating HEAD feature

---
 src/com/gitblit/GitBlit.java |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 9712ea6..a689b48 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -786,8 +786,8 @@
 			model.mailingLists = new ArrayList<String>(Arrays.asList(config.getStringList(
 					"gitblit", null, "mailingList")));
 		}
-		model.defaultHead = JGitUtils.getSymbolicHeadTarget(r);
-		model.availableHeads = JGitUtils.getAvailableHeadTargets(r);
+		model.HEAD = JGitUtils.getHEADRef(r);
+		model.availableRefs = JGitUtils.getAvailableHeadTargets(r);
 		r.close();
 		return model;
 	}
@@ -984,15 +984,14 @@
 		if (r != null) {
 			updateConfiguration(r, repository);
 			// only update symbolic head if it changes
-			String currentHead = JGitUtils.getSymbolicHeadTarget(r);
-			if (!StringUtils.isEmpty(repository.defaultHead)  &&
-					!repository.defaultHead.equals(currentHead)) {
+			String currentRef = JGitUtils.getHEADRef(r);
+			if (!StringUtils.isEmpty(repository.HEAD) && !repository.HEAD.equals(currentRef)) {
 				logger.info(MessageFormat.format("Relinking {0} HEAD from {1} to {2}", 
-						repository.name, currentHead, repository.defaultHead));
-				JGitUtils.setSymbolicHeadTarget(r, repository.defaultHead);
-
-				// clear the cache
-				clearRepositoryCache(repository.name);
+						repository.name, currentRef, repository.HEAD));
+				if (JGitUtils.setHEADtoRef(r, repository.HEAD)) {
+					// clear the cache
+					clearRepositoryCache(repository.name);
+				}
 			}
 
 			// close the repository object

--
Gitblit v1.9.1