changeset 419:743dc1646555 Faradi-7.0.x

Add option to not use revsets
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 25 Apr 2012 17:56:34 +0400
parents e56678c38fd5
children 20f5eca6b8ec 83aff5760c25
files mercurial-server/src/META-INF/build-server-plugin-mercurial.xml mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java
diffstat 7 files changed, 22 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml	Wed Apr 25 17:56:34 2012 +0400
@@ -4,7 +4,7 @@
 <beans default-autowire="constructor">
   <bean id="mercurialServer" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialVcsSupport" />
   <bean id="config" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerPluginConfigImpl" />
-  <bean id="commandFactory" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.RepoFactory" />
+  <bean id="repoFactory" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.RepoFactory" />
   <bean id="hgPathProvider" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerHgPathProvider"/>
   <bean id="mirrorManager" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.MirrorManagerImpl" />
 </beans>
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java	Wed Apr 25 17:56:34 2012 +0400
@@ -16,15 +16,17 @@
  */
 public final class RepoFactory {
 
+  private final ServerPluginConfig myConfig;
   private File myLogTemplate;
 
-  public RepoFactory() throws IOException {
+  public RepoFactory(@NotNull ServerPluginConfig config) throws IOException {
+    myConfig = config;
     myLogTemplate = createLogTemplate();
   }
 
   @NotNull
   public ServerHgRepo create(@NotNull File workingDir, @NotNull String hgPath, @NotNull AuthSettings authSettings) throws VcsException {
-    return new ServerHgRepo(workingDir, hgPath, authSettings).withLogTemplate(getTemplate());
+    return new ServerHgRepo(myConfig, workingDir, hgPath, authSettings).withLogTemplate(getTemplate());
   }
 
   public void dispose() {
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java	Wed Apr 25 17:56:34 2012 +0400
@@ -12,10 +12,12 @@
 public class ServerHgRepo extends HgRepo {
 
   private final static HgVersion REVSET_HG_VERSION = new HgVersion(1, 7, 0);
+  private final ServerPluginConfig myConfig;
   private File myLogTemplate;
 
-  public ServerHgRepo(@NotNull File workingDir, @NotNull String hgPath, @NotNull AuthSettings authSettings) {
+  public ServerHgRepo(@NotNull ServerPluginConfig config, @NotNull File workingDir, @NotNull String hgPath, @NotNull AuthSettings authSettings) {
     super(workingDir, hgPath, authSettings);
+    myConfig = config;
   }
 
   public ServerHgRepo withLogTemplate(@NotNull File logTemplate) {
@@ -37,6 +39,9 @@
 
   @NotNull
   public CollectChangesCommand collectChanges() throws VcsException {
+    if (myConfig.dontUseRevsets())
+      return new CollectChangesNoRevsets(this);
+
     HgVersion hgVersion = getHgVersion();
     if (hgVersion.isEqualsOrGreaterThan(REVSET_HG_VERSION)) {
       return new CollectChangesWithRevsets(this);
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Wed Apr 25 17:56:34 2012 +0400
@@ -13,4 +13,6 @@
   public boolean isUsePullProtocol();
 
   int getPullTimeout();
+
+  public boolean dontUseRevsets();
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Wed Apr 25 17:56:34 2012 +0400
@@ -35,6 +35,10 @@
     return myCachesDir;
   }
 
+  public boolean dontUseRevsets() {
+    return TeamCityProperties.getBoolean("teamcity.hg.dont.use.revsets");
+  }
+
   public int getPullTimeout() {
     int timeout = TeamCityProperties.getInteger(PULL_TIMEOUT_SECONDS, DEFAULT_PULL_TIMEOUT_SECONDS);
     return timeout > 0 ? timeout : DEFAULT_PULL_TIMEOUT_SECONDS;
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Wed Apr 25 17:56:34 2012 +0400
@@ -36,6 +36,10 @@
       public int getPullTimeout() {
         return ServerPluginConfigImpl.DEFAULT_PULL_TIMEOUT_SECONDS;
       }
+
+      public boolean dontUseRevsets() {
+        return false;
+      }
     };
   }
 
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java	Wed Apr 25 17:56:22 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java	Wed Apr 25 17:56:34 2012 +0400
@@ -32,7 +32,7 @@
 
 
   public static MercurialVcsSupport createMercurialServerSupport(@NotNull Mockery context, ServerPluginConfig config) throws IOException {
-    return createMercurialServerSupport(context, config, new RepoFactory());
+    return createMercurialServerSupport(context, config, new RepoFactory(config));
   }