Mercurial > hg > mercurial
view mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerHgRepo.java @ 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 | 45f25ca68312 |
children | 83aff5760c25 |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.*; import jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; import java.io.File; /** * @author dmitry.neverov */ 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 ServerPluginConfig config, @NotNull File workingDir, @NotNull String hgPath, @NotNull AuthSettings authSettings) { super(workingDir, hgPath, authSettings); myConfig = config; } public ServerHgRepo withLogTemplate(@NotNull File logTemplate) { myLogTemplate = logTemplate; return this; } public LogCommand log() { return new LogCommand(myHgPath, myWorkingDir, myAuthSettings).withTemplate(myLogTemplate); } public MergeBaseCommand mergeBase() throws VcsException { HgVersion hgVersion = getHgVersion(); if (hgVersion.isEqualsOrGreaterThan(REVSET_HG_VERSION)) return new MergeBaseWithRevsets(this); else return new MergeBaseNoRevsets(this); } @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); } else { return new CollectChangesNoRevsets(this); } } private HgVersion getHgVersion() throws VcsException { VersionCommand versionCommand = new VersionCommand(myHgPath, myWorkingDir); return versionCommand.call(); } }