Mercurial > hg > mercurial
changeset 891:d1a5fc6c1d6e
Log agent-side checkout progress with blocks
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 07 Nov 2014 14:55:14 +0100 |
parents | 771ae1b2f0b1 |
children | c28e68e22272 |
files | mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java |
diffstat | 5 files changed, 37 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java Fri Nov 07 14:30:28 2014 +0100 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialBuildLogProgress.java Fri Nov 07 14:55:14 2014 +0100 @@ -19,9 +19,12 @@ import jetbrains.buildServer.agent.BuildProgressLogger; import org.jetbrains.annotations.NotNull; +import java.util.concurrent.atomic.AtomicInteger; + public class MercurialBuildLogProgress implements MercurialProgress { private final BuildProgressLogger myLogger; + private final AtomicInteger myBlockMessageCount = new AtomicInteger(0); private String myPrevMessage; private int myPrevPercents; @@ -30,15 +33,19 @@ } public void progressStarted(@NotNull String progressMessage) { + myBlockMessageCount.set(0); + myLogger.activityStarted(progressMessage, "CUSTOM_HG_PROGRESS"); + } + + public void reportProgress(@NotNull String progressMessage) { + myBlockMessageCount.incrementAndGet(); myLogger.message(progressMessage); } public void progressFinished(@NotNull String progressMessage) { - myLogger.message(progressMessage); - } - - public void reportProgress(@NotNull String progressMessage) { - myLogger.message(progressMessage); + if (myBlockMessageCount.get() == 0) + myLogger.message("");//add an empty message so that the empty block is shown in UI + myLogger.activityFinished(progressMessage, "CUSTOM_HG_PROGRESS"); } public void reportProgress(float percentage, @NotNull String stage) {
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Fri Nov 07 14:30:28 2014 +0100 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Fri Nov 07 14:55:14 2014 +0100 @@ -74,7 +74,7 @@ myPullTimeout = pluginConfig.getPullTimeout(build); myUseTraceback = pluginConfig.runWithTraceback(build); myProfile = pluginConfig.runWithProfile(build); - myProgress = new MercurialBuildLogProgress(build.getBuildLogger()); + myProgress = new MercurialBuildLogProgress(build.getBuildLogger().getFlowLogger("-1")); }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java Fri Nov 07 14:30:28 2014 +0100 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CloneCommand.java Fri Nov 07 14:55:14 2014 +0100 @@ -103,6 +103,7 @@ cli.addParameters("--config", "progress.format=topic number"); cli.addParameters("--config", "progress.delay=0"); cli.addParameters("--config", "progress.assume-tty=True"); + cli.setHasProgress(true); } String repositoryUrl = myAuthSettings.getRepositoryUrlWithCredentials(myRepository);
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java Fri Nov 07 14:30:28 2014 +0100 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java Fri Nov 07 14:55:14 2014 +0100 @@ -36,6 +36,7 @@ private final Set<String> myPrivateData; private Charset myCharset; private String myDescription = ""; + private boolean myHasProgress = false; public MercurialCommandLine(@NotNull final Set<String> privateData) { myPrivateData = privateData; @@ -174,13 +175,30 @@ myDescription = description; } + public void setHasProgress(boolean hasProgress) { + myHasProgress = hasProgress; + } + public void logCommandStarted(@NotNull MercurialProgress progress) { - if (!isEmpty(myDescription)) - progress.progressStarted(myDescription); + if (!isEmpty(myDescription)) { + if (myHasProgress) { + progress.progressStarted(getProgressMessage()); + } else { + progress.reportProgress(getProgressMessage()); + } + } + } public void logCommandFinished(@NotNull MercurialProgress progress) { - if (!isEmpty(myDescription)) - progress.progressFinished(myDescription); + if (!isEmpty(myDescription) && myHasProgress) + progress.progressFinished(getProgressMessage()); + } + + @NotNull + private String getProgressMessage() { + String result = myDescription != null ? "[" + myWorkingDirectory + "] " : ""; + result += myDescription; + return result; } }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java Fri Nov 07 14:30:28 2014 +0100 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java Fri Nov 07 14:55:14 2014 +0100 @@ -82,6 +82,7 @@ cli.addParameters("--config", "progress.format=topic number"); cli.addParameters("--config", "progress.delay=0"); cli.addParameters("--config", "progress.assume-tty=True"); + cli.setHasProgress(true); } String pullUrl = myAuthSettings.getRepositoryUrlWithCredentials(myPullUrl);