From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001
From: Philip L. McMahon <philip.l.mcmahon@gmail.com>
Date: Fri, 27 Jan 2012 02:02:19 -0500
Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag.

---
 src/com/gitblit/wicket/pages/EditRepositoryPage.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 0f3a0bb..6c04249 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -45,8 +45,10 @@
 import com.gitblit.GitBlit;
 import com.gitblit.GitBlitException;
 import com.gitblit.Keys;
+import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
@@ -116,7 +118,7 @@
 				new ChoiceRenderer<String>("", ""), 5, false);
 
 		// pre-receive palette
-		if (repositoryModel.preReceiveScripts != null) {
+		if (!ArrayUtils.isEmpty(repositoryModel.preReceiveScripts)) {
 			preReceiveScripts.addAll(repositoryModel.preReceiveScripts);
 		}
 		final Palette<String> preReceivePalette = new Palette<String>("preReceiveScripts",
@@ -125,7 +127,7 @@
 				new ChoiceRenderer<String>("", ""), 12, true);
 
 		// post-receive palette
-		if (repositoryModel.postReceiveScripts != null) {
+		if (!ArrayUtils.isEmpty(repositoryModel.postReceiveScripts)) {
 			postReceiveScripts.addAll(repositoryModel.postReceiveScripts);
 		}
 		final Palette<String> postReceivePalette = new Palette<String>("postReceiveScripts",
@@ -270,6 +272,9 @@
 		form.add(new CheckBox("isFrozen"));
 		// TODO enable origin definition
 		form.add(new TextField<String>("origin").setEnabled(false/* isCreate */));
+		// enable alteration of the default branch after clone
+		form.add(new DropDownChoice<RefModel>("defaultHead", repositoryModel.availableHeads,
+				new RefModelRenderer()).setEnabled(GitBlitWebSession.get().canAdmin()));
 
 		// federation strategies - remove ORIGIN choice if this repository has
 		// no origin.
@@ -286,7 +291,7 @@
 		form.add(new CheckBox("showReadme"));
 		form.add(new CheckBox("skipSizeCalculation"));
 		form.add(new CheckBox("skipSummaryMetrics"));
-		mailingLists = new Model<String>(repositoryModel.mailingLists == null ? ""
+		mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? ""
 				: StringUtils.flattenStrings(repositoryModel.mailingLists, " "));
 		form.add(new TextField<String>("mailingLists", mailingLists));
 		form.add(usersPalette);
@@ -360,6 +365,21 @@
 		}
 	}
 
+	private class RefModelRenderer implements IChoiceRenderer<RefModel> {
+
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		public String getDisplayValue(RefModel type) {
+			return type.displayName;
+		}
+
+		@Override
+		public String getIdValue(RefModel type, int index) {
+			return type.getName();
+		}
+	}
+
 	private class AccessRestrictionRenderer implements IChoiceRenderer<AccessRestrictionType> {
 
 		private static final long serialVersionUID = 1L;

--
Gitblit v1.9.1