Mercurial > hg > mercurial
changeset 863:11af75f9dc98
Add ability to run hg pull with --profile option to troubleshoot slow agent-side checkout
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Tue, 26 Aug 2014 22:01:22 +0200 |
parents | 24a6ef9166ae |
children | 98657a5c5cb1 |
files | mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfig.java mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfigImpl.java mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java |
diffstat | 4 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfig.java Mon Aug 25 19:22:39 2014 +0200 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfig.java Tue Aug 26 22:01:22 2014 +0200 @@ -34,6 +34,8 @@ boolean runWithTraceback(@NotNull AgentRunningBuild build); + boolean runWithProfile(@NotNull AgentRunningBuild build); + @NotNull File getTempDir(); }
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfigImpl.java Mon Aug 25 19:22:39 2014 +0200 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentPluginConfigImpl.java Tue Aug 26 22:01:22 2014 +0200 @@ -68,6 +68,10 @@ return Boolean.valueOf(build.getSharedConfigParameters().get("teamcity.hg.run.commands.with.traceback")); } + public boolean runWithProfile(@NotNull AgentRunningBuild build) { + return Boolean.valueOf(build.getSharedConfigParameters().get("teamcity.hg.runCommandsWithProfile")); + } + @Nullable public Integer parseTimeout(@Nullable String timeoutStr) { if (timeoutStr == null)
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Mon Aug 25 19:22:39 2014 +0200 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Tue Aug 26 22:01:22 2014 +0200 @@ -54,6 +54,7 @@ private final boolean myUseLocalMirrors; private int myPullTimeout; private final boolean myUseTraceback; + private final boolean myProfile; private final List<MercurialExtension> myExtensions = new ArrayList<MercurialExtension>(); public MercurialIncludeRuleUpdater(@NotNull AgentPluginConfig pluginConfig, @@ -71,6 +72,7 @@ myUseLocalMirrors = pluginConfig.isUseLocalMirrors(build); myPullTimeout = pluginConfig.getPullTimeout(build); myUseTraceback = pluginConfig.runWithTraceback(build); + myProfile = pluginConfig.runWithProfile(build); } @@ -128,6 +130,7 @@ myLogger.message("Start pulling changes from " + myAuthSettings.getRepositoryUrlWithHiddenPassword(repositoryUrl)); mirrorRepo.pull().fromRepository(repositoryUrl) .withTraceback(myUseTraceback) + .withProfile(myProfile) .withTimeout(myPullTimeout) .call(); myLogger.message("Local mirror changes successfully pulled"); @@ -162,6 +165,7 @@ try { repo.pull().fromRepository(repositoryUrl) .withTraceback(myUseTraceback) + .withProfile(myProfile) .withTimeout(myPullTimeout) .call(); } catch (UnrelatedRepositoryException e) { @@ -249,6 +253,7 @@ myLogger.message("Pull from local mirror"); subrepository.pull().fromRepository(mirrorDir) .withTraceback(myUseTraceback) + .withProfile(myProfile) .withTimeout(myPullTimeout) .call(); myLogger.message("done");
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java Mon Aug 25 19:22:39 2014 +0200 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java Tue Aug 26 22:01:22 2014 +0200 @@ -32,6 +32,7 @@ private String myPullUrl; private int myTimeout; private boolean myTraceback; + private boolean myProfile; private ProgressParser.ProgressConsumer myProgressConsumer; public PullCommand(@NotNull CommandSettings commandSettings, @@ -61,6 +62,11 @@ return this; } + public PullCommand withProfile(boolean runWithProfile) { + myProfile = runWithProfile; + return this; + } + public PullCommand withProgressConsumer(ProgressParser.ProgressConsumer progressConsumer) { myProgressConsumer = progressConsumer; return this; @@ -73,6 +79,9 @@ if (myTraceback) cli.addParameter("--traceback"); + if (myProfile) + cli.addParameter("--profile"); + CommandSettings settings = myCommandSettings.setTimeout(myTimeout); if (myProgressConsumer != null) { cli.addParameters("--config", "extensions.progress=");