From cc1cd7800940f98efe206fe50a4375a3fb9dc621 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 09 Jan 2012 21:10:27 -0500
Subject: [PATCH] Refactored named branch retrieval function

---
 src/com/gitblit/utils/JGitUtils.java |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index ae53c94..2a99c97 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -1291,29 +1291,40 @@
 	 * @return a refmodel for the gh-pages branch or null
 	 */
 	public static RefModel getPagesBranch(Repository repository) {
-		RefModel ghPages = null;
+		return getBranch(repository, "gh-pages");
+	}
+
+	/**
+	 * Returns a RefModel for a specific branch name in the repository. If the
+	 * branch can not be found, null is returned.
+	 * 
+	 * @param repository
+	 * @return a refmodel for the branch or null
+	 */
+	public static RefModel getBranch(Repository repository, String name) {
+		RefModel branch = null;
 		try {
-			// search for gh-pages branch in local heads
+			// search for the branch in local heads
 			for (RefModel ref : JGitUtils.getLocalBranches(repository, false, -1)) {
-				if (ref.displayName.endsWith("gh-pages")) {
-					ghPages = ref;
+				if (ref.displayName.endsWith(name)) {
+					branch = ref;
 					break;
 				}
 			}
 
-			// search for gh-pages branch in remote heads
-			if (ghPages == null) {
+			// search for the branch in remote heads
+			if (branch == null) {
 				for (RefModel ref : JGitUtils.getRemoteBranches(repository, false, -1)) {
-					if (ref.displayName.endsWith("gh-pages")) {
-						ghPages = ref;
+					if (ref.displayName.endsWith(name)) {
+						branch = ref;
 						break;
 					}
 				}
 			}
 		} catch (Throwable t) {
-			LOGGER.error("Failed to find gh-pages branch!", t);
+			LOGGER.error(MessageFormat.format("Failed to find {0} branch!", name), t);
 		}
-		return ghPages;
+		return branch;
 	}
 
 	/**

--
Gitblit v1.9.1