Mercurial > hg > mercurial
changeset 258:0eed01dbf993
Add ability to disable pull protocol
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 16 Jun 2011 19:00:44 +0400 |
parents | 3d1038cbb475 |
children | b00f7c7d53e1 |
files | mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java mercurial-server/src/META-INF/build-server-plugin-mercurial.xml mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfig.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfigImpl.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java |
diffstat | 6 files changed, 46 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java Tue May 17 20:12:08 2011 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java Thu Jun 16 19:00:44 2011 +0400 @@ -27,6 +27,7 @@ private boolean myUpdateWorkingDir = true; private String myRepository; private File myWorkingDir; + private boolean myUsePullProtocol = true; public CloneCommand(@NotNull Settings settings, @NotNull File workingDir) { super(settings, workingDir); @@ -50,6 +51,10 @@ myUpdateWorkingDir = updateWorkingDir; } + public void setUsePullProtocol(boolean usePullProtocol) { + myUsePullProtocol = usePullProtocol; + } + public void execute() throws VcsException { GeneralCommandLine cli = createCommandLine(); File parent = myWorkingDir.getParentFile(); @@ -59,7 +64,8 @@ cli.addParameter("-r"); cli.addParameter(myToId); } - cli.addParameter("--pull"); + if (myUsePullProtocol) + cli.addParameter("--pull"); if (!myUpdateWorkingDir) { cli.addParameter("-U"); }
--- a/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml Tue May 17 20:12:08 2011 +0400 +++ b/mercurial-server/src/META-INF/build-server-plugin-mercurial.xml Thu Jun 16 19:00:44 2011 +0400 @@ -3,4 +3,5 @@ <beans default-autowire="constructor"> <bean id="mercurialServer" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialVcsSupport" /> + <bean id="config" class="jetbrains.buildServer.buildTriggers.vcs.mercurial.PluginConfigImpl" /> </beans>
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Tue May 17 20:12:08 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Thu Jun 16 19:00:44 2011 +0400 @@ -58,14 +58,17 @@ private VcsManager myVcsManager; private File myDefaultWorkFolderParent; private MirrorManager myMirrorManager; + private final PluginConfig myConfig; public MercurialVcsSupport(@NotNull final VcsManager vcsManager, - @NotNull ServerPaths paths, + @NotNull final ServerPaths paths, @NotNull final SBuildServer server, - @NotNull EventDispatcher<BuildServerListener> dispatcher) { + @NotNull final EventDispatcher<BuildServerListener> dispatcher, + @NotNull final PluginConfig config) { myVcsManager = vcsManager; myDefaultWorkFolderParent = new File(paths.getCachesDir(), "mercurial"); myMirrorManager = new MirrorManager(myDefaultWorkFolderParent); + myConfig = config; dispatcher.addListener(new BuildServerAdapter() { @Override public void cleanupFinished() { @@ -336,6 +339,7 @@ cl.setRepository(mirrorDir.getAbsolutePath()); cl.setToId(toVer.getId()); cl.setUpdateWorkingDir(false); + cl.setUsePullProtocol(myConfig.isUsePullProtocol()); cl.execute(); UpdateCommand up = new UpdateCommand(settings, repRoot);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfig.java Thu Jun 16 19:00:44 2011 +0400 @@ -0,0 +1,10 @@ +package jetbrains.buildServer.buildTriggers.vcs.mercurial; + +/** + * @author dmitry.neverov + */ +public interface PluginConfig { + + public boolean isUsePullProtocol(); + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/PluginConfigImpl.java Thu Jun 16 19:00:44 2011 +0400 @@ -0,0 +1,13 @@ +package jetbrains.buildServer.buildTriggers.vcs.mercurial; + +import jetbrains.buildServer.serverSide.TeamCityProperties; + +/** + * @author dmitry.neverov + */ +public class PluginConfigImpl implements PluginConfig { + + public boolean isUsePullProtocol() { + return TeamCityProperties.getBooleanOrTrue("teamcity.hg.use.pull.protocol"); + } +}
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Tue May 17 20:12:08 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Thu Jun 16 19:00:44 2011 +0400 @@ -60,7 +60,7 @@ File systemDir = myTempFiles.createTempDir(); myServerPaths = new ServerPaths(systemDir.getAbsolutePath(), systemDir.getAbsolutePath(), systemDir.getAbsolutePath()); assertTrue(new File(myServerPaths.getCachesDir()).mkdirs()); - myVcs = new MercurialVcsSupport((VcsManager)vcsManagerMock.proxy(), myServerPaths, (SBuildServer)serverMock.proxy(), dispatcher); + myVcs = new MercurialVcsSupport((VcsManager)vcsManagerMock.proxy(), myServerPaths, (SBuildServer)serverMock.proxy(), dispatcher, createPluginConfig()); } protected String getTestDataPath() { @@ -477,5 +477,13 @@ public void test_collect_changes_using_checkout_rules() { assertTrue(myVcs.getCollectChangesPolicy() instanceof CollectChangesByCheckoutRules); } + + private PluginConfig createPluginConfig() { + return new PluginConfig() { + public boolean isUsePullProtocol() { + return true; + } + }; + } }