From f084f468756bde745d8e8e27c729f6e57bea5749 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 17 Sep 2013 17:34:00 -0400
Subject: [PATCH] Implemented a graph servlet based on EGit/JGit's PlotWalk (issue-194)

---
 src/main/java/com/gitblit/GitBlit.java |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index 608ae7c..1afbbc9 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -2427,7 +2427,8 @@
 			}
 			// create repository
 			logger.info("create repository " + repository.name);
-			r = JGitUtils.createRepository(repositoriesFolder, repository.name);
+			String shared = getString(Keys.git.createRepositoriesShared, "FALSE");
+			r = JGitUtils.createRepository(repositoriesFolder, repository.name, shared);
 		} else {
 			// rename repository
 			if (!repositoryName.equalsIgnoreCase(repository.name)) {
@@ -2529,7 +2530,13 @@
 			// close the repository object
 			r.close();
 		}
-		
+
+		// Adjust permissions in case we updated the config files
+		JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "config"),
+				getString(Keys.git.createRepositoriesShared, "FALSE"));
+		JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "HEAD"),
+				getString(Keys.git.createRepositoriesShared, "FALSE"));
+
 		// update repository cache
 		removeFromCachedRepositoryList(repositoryName);
 		// model will actually be replaced on next load because config is stale
@@ -3440,6 +3447,10 @@
 		luceneExecutor = new LuceneExecutor(settings, repositoriesFolder);
 		gcExecutor = new GCExecutor(settings);
 		
+		// initialize utilities
+		String prefix = settings.getString(Keys.git.userRepositoryPrefix, "~");
+		ModelUtils.setUserRepoPrefix(prefix);
+
 		// calculate repository list settings checksum for future config changes
 		repositoryListSettingsChecksum.set(getRepositoryListSettingsChecksum());
 
@@ -3604,7 +3615,7 @@
 			Date cutoff = CommitCache.instance().getCutoffDate();
 			for (String repositoryName : getRepositoryList()) {
 				RepositoryModel model = getRepositoryModel(repositoryName);
-				if (model.hasCommits && model.lastChange.after(cutoff)) {
+				if (model != null && model.hasCommits && model.lastChange.after(cutoff)) {
 					repoCount++;
 					Repository repository = getRepository(repositoryName);
 					for (RefModel ref : JGitUtils.getLocalBranches(repository, true, -1)) {

--
Gitblit v1.9.1