changeset 874:894b7e0c9dd6

run 'hg log' with progress
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 30 Sep 2014 18:45:16 +0200
parents 95e7d2ff8945
children b06ea5c379cc
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesCommand.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesWithRevsets.java
diffstat 3 files changed, 19 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Tue Sep 30 18:27:09 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Tue Sep 30 18:45:16 2014 +0200
@@ -227,6 +227,7 @@
               .fromRevision(fromCommits)
               .toRevision(toCommit)
               .includeFromRevision(ctx.includeFromRevisions())
+              .withProgressConsumer(ctx.getProgressConsumer())
               .call();
       if (!ctx.includeFromRevisions()) {
         Iterator<ChangeSet> iter = csets.iterator();
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesCommand.java	Tue Sep 30 18:27:09 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesCommand.java	Tue Sep 30 18:45:16 2014 +0200
@@ -29,6 +29,7 @@
   protected List<String> myFromRevisions;
   protected String myToRevision;
   protected boolean myIncludeFromRevision;
+  protected ProgressParser.ProgressConsumer myProgressConsumer;
 
   @NotNull
   public abstract List<ChangeSet> call(@NotNull List<String> fromCommits, @NotNull String toCommit) throws VcsException;
@@ -45,6 +46,11 @@
     return this;
   }
 
+  public CollectChangesCommand withProgressConsumer(ProgressParser.ProgressConsumer progressConsumer) {
+    myProgressConsumer = progressConsumer;
+    return this;
+  }
+
   public CollectChangesCommand includeFromRevision(boolean doInclude) {
     myIncludeFromRevision = doInclude;
     return this;
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesWithRevsets.java	Tue Sep 30 18:27:09 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesWithRevsets.java	Tue Sep 30 18:45:16 2014 +0200
@@ -16,7 +16,6 @@
 
 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
 
-import jetbrains.buildServer.buildTriggers.vcs.mercurial.HgRepo;
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.ServerHgRepo;
 import jetbrains.buildServer.vcs.VcsException;
 import org.jetbrains.annotations.NotNull;
@@ -44,7 +43,7 @@
   @NotNull
   public List<ChangeSet> call(@NotNull final List<String> fromCommits, @NotNull final String toCommit) throws VcsException {
     StringBuilder revsets = new StringBuilder();
-    revsets.append("ancestors(").append(toCommit).append(") ");
+    revsets.append("ancestors(").append(toCommit).append(")");
     for (String from : fromCommits) {
       revsets.append(" - ancestors(").append(from).append(")");
     }
@@ -53,9 +52,16 @@
         revsets.append(" + ").append(from);
       }
     }
-    return myRepo.log(myRoot)
-            .showCommitsFromAllBranches()
-            .withRevsets(revsets.toString())
-            .call();
+    try {
+      if (myProgressConsumer != null)
+        myProgressConsumer.consume(-1f, "hg log " + revsets);
+      return myRepo.log(myRoot)
+              .showCommitsFromAllBranches()
+              .withRevsets(revsets.toString())
+              .call();
+    } finally {
+      if (myProgressConsumer != null)
+        myProgressConsumer.consume(-1f, "hg log " + revsets + " finished");
+    }
   }
 }