diff options
author | Shawn O. Pearce <sop@google.com> | 2010-12-09 12:58:17 -0800 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2011-05-19 16:53:01 -0700 |
commit | 62defaca1c66f903a6e2e8e9a97d54d16ecb8159 (patch) | |
tree | 73b664ff420e010bb8014f4f824c0420e06f1989 | |
parent | b052ca8dcf7ca207d5ddfb22c549d8faa2848daa (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.java | 15 | ||||
-rw-r--r-- | gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java | 9 |
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); |