summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-12-09 12:58:17 -0800
committerShawn O. Pearce <sop@google.com>2011-05-19 16:53:01 -0700
commit62defaca1c66f903a6e2e8e9a97d54d16ecb8159 (patch)
tree73b664ff420e010bb8014f4f824c0420e06f1989
parentb052ca8dcf7ca207d5ddfb22c549d8faa2848daa (diff)
Move repository creation into LocalDiskRepositoryManager
Make createRepository() actually create the project repository. Change-Id: Ic10381440129f13919ad6cd67a32c22ae48e0f53 Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java15
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java9
2 files changed, 13 insertions, 11 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
index 7e98348dd8..8ea2c7eb1c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
@@ -23,10 +23,12 @@ import com.google.inject.Singleton;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.lib.Config;
+import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryCache;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
+import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.storage.file.LockFile;
import org.eclipse.jgit.storage.file.WindowCache;
import org.eclipse.jgit.storage.file.WindowCacheConfig;
@@ -129,10 +131,19 @@ public class LocalDiskRepositoryManager implements GitRepositoryManager {
}
loc = FileKey.exact(new File(basePath, n), FS.DETECTED);
}
- return RepositoryCache.open(loc, false);
+
+ Repository db = RepositoryCache.open(loc, false);
+ db.create(true /* bare */);
+
+ StoredConfig config = db.getConfig();
+ config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION,
+ null, ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES, true);
+ config.save();
+
+ return db;
} catch (IOException e1) {
final RepositoryNotFoundException e2;
- e2 = new RepositoryNotFoundException("Cannot open repository " + name);
+ e2 = new RepositoryNotFoundException("Cannot create repository " + name);
e2.initCause(e1);
throw e2;
}
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
index 0be02fd486..8c476f351c 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
@@ -34,7 +34,6 @@ import com.google.inject.Inject;
import org.apache.sshd.server.Environment;
import org.eclipse.jgit.lib.CommitBuilder;
-import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter;
@@ -42,7 +41,6 @@ import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RefUpdate.Result;
-import org.eclipse.jgit.lib.StoredConfig;
import org.kohsuke.args4j.Option;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -139,13 +137,6 @@ final class CreateProject extends BaseCommand {
if (!permissionsOnly) {
final Repository repo = repoManager.createRepository(nameKey);
try {
- repo.create(true);
-
- StoredConfig config = repo.getConfig();
- config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION,
- null, ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES, true);
- config.save();
-
RefUpdate u = repo.updateRef(Constants.HEAD);
u.disableRefLog();
u.link(branch);