From 756117adc7f5b4bd21948ede7ab0085aa42d5ccc Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 07 Aug 2012 09:43:24 -0400
Subject: [PATCH] Fix to GitServlet to allow pushing to symlinked repositories (issue 116)

---
 src/com/gitblit/GitFilter.java |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/src/com/gitblit/GitFilter.java b/src/com/gitblit/GitFilter.java
index 4ae5b6c..aa67346 100644
--- a/src/com/gitblit/GitFilter.java
+++ b/src/com/gitblit/GitFilter.java
@@ -32,12 +32,29 @@
  */
 public class GitFilter extends AccessRestrictionFilter {
 
-	protected final String gitReceivePack = "/git-receive-pack";
+	protected static final String gitReceivePack = "/git-receive-pack";
 
-	protected final String gitUploadPack = "/git-upload-pack";
+	protected static final String gitUploadPack = "/git-upload-pack";
 
-	protected final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD",
+	protected static final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD",
 			"/objects" };
+
+	/**
+	 * Extract the repository name from the url.
+	 * 
+	 * @param url
+	 * @return repository name
+	 */
+	public static String getRepositoryName(String value) {
+		String repository = value;
+		// get the repository name from the url by finding a known url suffix
+		for (String urlSuffix : suffixes) {
+			if (repository.indexOf(urlSuffix) > -1) {
+				repository = repository.substring(0, repository.indexOf(urlSuffix));
+			}
+		}
+		return repository;
+	}
 
 	/**
 	 * Extract the repository name from the url.
@@ -47,14 +64,7 @@
 	 */
 	@Override
 	protected String extractRepositoryName(String url) {
-		String repository = url;
-		// get the repository name from the url by finding a known url suffix
-		for (String urlSuffix : suffixes) {
-			if (repository.indexOf(urlSuffix) > -1) {
-				repository = repository.substring(0, repository.indexOf(urlSuffix));
-			}
-		}
-		return repository;
+		return GitFilter.getRepositoryName(url);
 	}
 
 	/**

--
Gitblit v1.9.1