From f6740d55ff80bc6e16da5c3df0ee1ba2235d6629 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 26 Sep 2011 15:33:19 -0400
Subject: [PATCH] Implemented a Federation Client. Bare clone tweaks. Documentation.

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

diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index faca9cb..bfbc624 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -37,8 +37,6 @@
 import org.eclipse.jgit.api.CloneCommand;
 import org.eclipse.jgit.api.FetchCommand;
 import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.PullCommand;
-import org.eclipse.jgit.api.PullResult;
 import org.eclipse.jgit.api.ResetCommand;
 import org.eclipse.jgit.api.ResetCommand.ResetType;
 import org.eclipse.jgit.diff.DiffEntry;
@@ -142,6 +140,7 @@
 	 * Encapsulates the result of cloning or pulling from a repository.
 	 */
 	public static class CloneResult {
+		public String name;
 		public FetchResult fetchResult;
 		public boolean createdRepository;
 	}
@@ -175,12 +174,22 @@
 	 * @return CloneResult
 	 * @throws Exception
 	 */
-	public static CloneResult cloneRepository(File repositoriesFolder, String name, String fromUrl, boolean bare,
-			CredentialsProvider credentialsProvider) throws Exception {
+	public static CloneResult cloneRepository(File repositoriesFolder, String name, String fromUrl,
+			boolean bare, CredentialsProvider credentialsProvider) throws Exception {
 		CloneResult result = new CloneResult();
-		if (bare && !name.toLowerCase().endsWith(Constants.DOT_GIT_EXT)) {
-			name += Constants.DOT_GIT_EXT;
+		if (bare) {
+			// bare repository, ensure .git suffix
+			if (!name.toLowerCase().endsWith(Constants.DOT_GIT_EXT)) {
+				name += Constants.DOT_GIT_EXT;
+			}
+		} else {
+			// normal repository, strip .git suffix
+			if (name.toLowerCase().endsWith(Constants.DOT_GIT_EXT)) {
+				name = name.substring(0, name.indexOf(Constants.DOT_GIT_EXT));
+			}
 		}
+		result.name = name;
+
 		File folder = new File(repositoriesFolder, name);
 		if (folder.exists()) {
 			File gitDir = FileKey.resolve(new File(repositoriesFolder, name), FS.DETECTED);

--
Gitblit v1.9.1