From 24d08fb7bef89584e0ea39e55aba9fb92bc500e3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 09 Jun 2011 19:41:53 -0400
Subject: [PATCH] Simplified screenshot process and automated thumbnail generation.

---
 src/com/gitblit/GitBlit.java |   39 +++++++++++++++++++--------------------
 1 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index 9d06f35..0132623 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) {
@@ -303,19 +312,8 @@
 		return false;
 	}
 
-	public boolean renameRepository(RepositoryModel model, String newName) {
-		File folder = new File(repositoriesFolder, model.name);
-		if (folder.exists() && folder.isDirectory()) {
-			File newFolder = new File(repositoriesFolder, newName);
-			if (folder.renameTo(newFolder)) {
-				return loginService.renameRole(model.name, newName);
-			}
-		}
-		return false;
-	}
-
 	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);
@@ -325,6 +323,7 @@
 	@Override
 	public void contextInitialized(ServletContextEvent contextEvent) {
 		if (storedSettings == null) {
+			// for running gitblit as a traditional webapp in a servlet container
 			WebXmlSettings webxmlSettings = new WebXmlSettings(contextEvent.getServletContext());
 			configureContext(webxmlSettings);
 		}
@@ -332,6 +331,6 @@
 
 	@Override
 	public void contextDestroyed(ServletContextEvent contextEvent) {
-		logger.info("GitBlit context destroyed by servlet container.");
+		logger.info("Gitblit context destroyed by servlet container.");
 	}
 }

--
Gitblit v1.9.1