Mercurial > hg > mercurial
changeset 420:20f5eca6b8ec
Merge branch Faradi-7.0.x
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 26 Apr 2012 16:43:19 +0400 |
parents | 74487e2c6356 (current diff) 743dc1646555 (diff) |
children | ef53ca83df1b |
files | |
diffstat | 8 files changed, 38 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommand.java Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommand.java Thu Apr 26 16:43:19 2012 +0400 @@ -248,15 +248,29 @@ } private void assignTrivialParents(final @NotNull List<ChangeSet> csets) throws VcsException { + Map<Integer, ChangeSet> revNumberMap = makeMapByRevNumber(csets); for (ChangeSet cset : csets) { if (cset.getParents().isEmpty()) { int parentRevNumber = cset.getRevNumber() - 1; - String parentId = getIdOf(parentRevNumber); - cset.addParent(new ChangeSetRevision(parentRevNumber, parentId)); + ChangeSet parent = revNumberMap.get(parentRevNumber); + if (parent != null) { + cset.addParent(parent); + } else { + String parentId = getIdOf(parentRevNumber); + cset.addParent(new ChangeSetRevision(parentRevNumber, parentId)); + } } } } + private Map<Integer, ChangeSet> makeMapByRevNumber(@NotNull List<ChangeSet> csets) throws VcsException { + Map<Integer, ChangeSet> csetMap = new HashMap<Integer, ChangeSet>(); + for (ChangeSet cset : csets) { + csetMap.put(cset.getRevNumber(), cset); + } + return csetMap; + } + private String getIdOf(int revNumber) throws VcsException { if (revNumber < 0) return ZERO_PARENT_ID;
--- a/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java Thu Apr 26 16:43:19 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 Tue Apr 17 16:39:32 2012 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java Thu Apr 26 16:43:19 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)); }