# HG changeset patch # User Dmitry Neverov # Date 1335362194 -14400 # Node ID 743dc164655589a9c519969c401aefb52ccfc661 # Parent e56678c38fd58079ca63b946151df24219848231 Add option to not use revsets diff -r e56678c38fd5 -r 743dc1646555 mercurial-server/src/META-INF/build-server-plugin-mercurial.xml --- 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 @@ - + diff -r e56678c38fd5 -r 743dc1646555 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java --- 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() { diff -r e56678c38fd5 -r 743dc1646555 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java --- 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); diff -r e56678c38fd5 -r 743dc1646555 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java --- 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(); } diff -r e56678c38fd5 -r 743dc1646555 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java --- 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; diff -r e56678c38fd5 -r 743dc1646555 mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java --- 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; + } }; } diff -r e56678c38fd5 -r 743dc1646555 mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java --- 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)); }