From 008322bec70a3a20bd00ed2219215a9f42fe0ca5 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 08 Jun 2011 20:48:07 -0400
Subject: [PATCH] Blame support finished, requires JGit 1.0.0. Checkstyle. Findbugs.

---
 src/com/gitblit/GitBlit.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 9d06f35..dcf5a6b 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -35,10 +35,10 @@
 import org.slf4j.LoggerFactory;
 
 import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.UserModel;
 import com.gitblit.utils.JGitUtils;
 import com.gitblit.utils.StringUtils;
-import com.gitblit.wicket.models.RepositoryModel;
-import com.gitblit.wicket.models.UserModel;
 
 public class GitBlit implements ServletContextListener {
 
@@ -93,7 +93,7 @@
 
 	public List<String> getOtherCloneUrls(String repositoryName) {
 		List<String> cloneUrls = new ArrayList<String>();
-		for (String url : storedSettings.getStrings(Keys.git.otherUrls)) {
+		for (String url : storedSettings.getStrings(Keys.web.otherUrls)) {
 			cloneUrls.add(MessageFormat.format(url, repositoryName));
 		}
 		return cloneUrls;
@@ -142,7 +142,7 @@
 
 	public List<String> getRepositoryList() {
 		return JGitUtils.getRepositoryList(repositoriesFolder, exportAll,
-				storedSettings.getBoolean(Keys.git.nestedRepositories, true));
+				storedSettings.getBoolean(Keys.git.searchRepositoriesSubfolders, true));
 	}
 
 	public Repository getRepository(String repositoryName) {
@@ -151,8 +151,8 @@
 			r = repositoryResolver.open(null, repositoryName);
 		} catch (RepositoryNotFoundException e) {
 			r = null;
-			logger.error("GitBlit.getRepository(String) failed to find repository "
-					+ repositoryName);
+			logger.error("GitBlit.getRepository(String) failed to find "
+					+ new File(repositoriesFolder, repositoryName).getAbsolutePath());
 		} catch (ServiceNotEnabledException e) {
 			r = null;
 			e.printStackTrace();
@@ -186,6 +186,9 @@
 
 	public RepositoryModel getRepositoryModel(String repositoryName) {
 		Repository r = getRepository(repositoryName);
+		if (r == null) {
+			return null;
+		}
 		RepositoryModel model = new RepositoryModel();
 		model.name = repositoryName;
 		model.hasCommits = JGitUtils.hasCommits(r);
@@ -200,6 +203,7 @@
 					"accessRestriction", null));
 			model.showRemoteBranches = getConfig(config, "showRemoteBranches", false);
 			model.isFrozen = getConfig(config, "isFrozen", false);
+			model.showReadme = getConfig(config, "showReadme", false);
 		}
 		r.close();
 		return model;
@@ -221,6 +225,10 @@
 			boolean isCreate) throws GitBlitException {
 		Repository r = null;
 		if (isCreate) {
+			// ensure created repository name ends with .git
+			if (!repository.name.toLowerCase().endsWith(org.eclipse.jgit.lib.Constants.DOT_GIT_EXT)) {
+				repository.name += org.eclipse.jgit.lib.Constants.DOT_GIT_EXT;
+			}
 			if (new File(repositoriesFolder, repository.name).exists()) {
 				throw new GitBlitException(MessageFormat.format(
 						"Can not create repository ''{0}'' because it already exists.",
@@ -228,7 +236,7 @@
 			}
 			// create repository
 			logger.info("create repository " + repository.name);
-			r = JGitUtils.createRepository(repositoriesFolder, repository.name, true);
+			r = JGitUtils.createRepository(repositoriesFolder, repository.name);
 		} else {
 			// rename repository
 			if (!repositoryName.equalsIgnoreCase(repository.name)) {
@@ -275,6 +283,7 @@
 					repository.accessRestriction.name());
 			config.setBoolean("gitblit", null, "showRemoteBranches", repository.showRemoteBranches);
 			config.setBoolean("gitblit", null, "isFrozen", repository.isFrozen);
+			config.setBoolean("gitblit", null, "showReadme", repository.showReadme);
 			try {
 				config.save();
 			} catch (IOException e) {
@@ -315,7 +324,7 @@
 	}
 
 	public void configureContext(IStoredSettings settings) {
-		logger.info("Using configuration from " + settings.toString());
+		logger.info("Reading configuration from " + settings.toString());
 		this.storedSettings = settings;
 		repositoriesFolder = new File(settings.getString(Keys.git.repositoriesFolder, "repos"));
 		exportAll = settings.getBoolean(Keys.git.exportAll, true);

--
Gitblit v1.9.1