From 1c30dad2115fc513791d8a5b292ad0f7d7b85749 Mon Sep 17 00:00:00 2001
From: lemval <mvanleeuwen@xebia.com>
Date: Tue, 31 Jan 2012 09:25:02 -0500
Subject: [PATCH] Do not traverse unaccessible subdirectories (issue 51)

---
 src/com/gitblit/GitBlit.java |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index b6bf7bf..7216126 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -69,7 +69,6 @@
 import com.gitblit.models.FederationProposal;
 import com.gitblit.models.FederationSet;
 import com.gitblit.models.Metric;
-import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.ServerSettings;
 import com.gitblit.models.ServerStatus;
@@ -787,10 +786,8 @@
 			model.mailingLists = new ArrayList<String>(Arrays.asList(config.getStringList(
 					"gitblit", null, "mailingList")));
 		}
-		model.defaultHead = JGitUtils.getDefaultHead(r);
-		model.availableHeads = new ArrayList<RefModel>();
-		model.availableHeads.addAll(JGitUtils.getLocalBranches(r, true, -1));
-		model.availableHeads.addAll(JGitUtils.getTags(r, true, -1));
+		model.defaultHead = JGitUtils.getSymbolicHeadTarget(r);
+		model.availableHeads = JGitUtils.getAvailableHeadTargets(r);
 		r.close();
 		return model;
 	}
@@ -986,8 +983,10 @@
 		// update settings
 		if (r != null) {
 			updateConfiguration(r, repository);
-			if (repository.defaultHead != null) {
-				JGitUtils.setDefaultHead(r, repository.defaultHead.reference);
+			// only update symbolic head if it changes
+			if (!StringUtils.isEmpty(repository.defaultHead) &&
+					!repository.defaultHead.equals(JGitUtils.getSymbolicHeadTarget(r))) {
+				JGitUtils.setSymbolicHeadTarget(r, repository.defaultHead);
 			}
 			r.close();
 		}

--
Gitblit v1.9.1