diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 2f9b8835ee..7bb1f99744 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -797,6 +797,11 @@ By default unset, as the git daemon must be configured externally by the system administrator, and might not even be running on the same host as Gerrit. +[[gerrit.replicateOnStartup]]gerrit.replicateOnStartup:: ++ +If true, replicates to all remotes on startup to ensure they are +in-sync with this server. By default, true. + [[gitweb]]Section gitweb ~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/MasterNodeStartup.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/MasterNodeStartup.java index d2c50056a5..26c76c5878 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/config/MasterNodeStartup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/MasterNodeStartup.java @@ -20,6 +20,8 @@ import com.google.gerrit.server.git.PushAllProjectsOp; import com.google.gerrit.server.git.ReloadSubmitQueueOp; import com.google.inject.Inject; +import org.eclipse.jgit.lib.Config; + import java.util.concurrent.TimeUnit; /** Configuration for a master node in a cluster of servers. */ @@ -32,17 +34,24 @@ public class MasterNodeStartup extends LifecycleModule { static class OnStart implements LifecycleListener { private final PushAllProjectsOp.Factory pushAll; private final ReloadSubmitQueueOp.Factory submit; + private final boolean replicateOnStartup; @Inject OnStart(final PushAllProjectsOp.Factory pushAll, - final ReloadSubmitQueueOp.Factory submit) { + final ReloadSubmitQueueOp.Factory submit, + final @GerritServerConfig Config cfg) { this.pushAll = pushAll; this.submit = submit; + + replicateOnStartup = cfg.getBoolean("gerrit", "replicateOnStartup", true); } @Override public void start() { - pushAll.create(null).start(30, TimeUnit.SECONDS); + if (replicateOnStartup) { + pushAll.create(null).start(30, TimeUnit.SECONDS); + } + submit.create().start(15, TimeUnit.SECONDS); }