changeset 881:f697460552c8

Require progress in ChangesCollectingContext
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Sat, 04 Oct 2014 23:25:34 +0200
parents ea8b15b97960
children a421a669588c
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/CollectChangesContext.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialModificationInfoBuilder.java
diffstat 3 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/CollectChangesContext.java	Sat Oct 04 23:16:43 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/CollectChangesContext.java	Sat Oct 04 23:25:34 2014 +0200
@@ -51,23 +51,26 @@
 
   public CollectChangesContext(@NotNull MercurialVcsSupport vcs,
                                @NotNull RepoFactory repoFactory,
+                               @NotNull MercurialProgress progress,
                                @NotNull RepositoryStateData fromState,
                                @NotNull RepositoryStateData toState) {
-    this(vcs, repoFactory, new HashSet<String>(fromState.getBranchRevisions().values()), toState);
+    this(vcs, repoFactory, progress, new HashSet<String>(fromState.getBranchRevisions().values()), toState);
   }
 
   public CollectChangesContext(@NotNull MercurialVcsSupport vcs,
                                @NotNull RepoFactory repoFactory,
+                               @NotNull MercurialProgress progress,
                                @NotNull String fromVersion,
                                @NotNull String toVersion) {
-    this(vcs, repoFactory, setOf(fromVersion), RepositoryStateData.createSingleVersionState(toVersion));
+    this(vcs, repoFactory, progress, setOf(fromVersion), RepositoryStateData.createSingleVersionState(toVersion));
   }
 
   public CollectChangesContext(@NotNull MercurialVcsSupport vcs,
                                @NotNull RepoFactory repoFactory,
+                               @NotNull MercurialProgress progress,
                                @NotNull Collection<String> fromVersions,
                                @NotNull RepositoryStateData toState) {
-    super(vcs, repoFactory, MercurialProgress.NO_OP);
+    super(vcs, repoFactory, progress);
     myToState = toState;
     myUninterestingRevisions = new HashSet<String>(fromVersions);
   }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Sat Oct 04 23:16:43 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Sat Oct 04 23:25:34 2014 +0200
@@ -96,7 +96,7 @@
                                                @NotNull CheckoutRules rules) throws VcsException {
     List<ModificationData> changes = new ArrayList<ModificationData>();
     HgVcsRoot hgRoot = myHgVcsRootFactory.createHgRoot(root);
-    CollectChangesContext ctx = new CollectChangesContext(myVcs, myRepoFactory, fromState, toState);
+    CollectChangesContext ctx = new CollectChangesContext(myVcs, myRepoFactory, createMercurialProgess(), fromState, toState);
     ctx.setProgressConsumer(createProgressConsumer());
     for (Map.Entry<String, String> entry : toState.getBranchRevisions().entrySet()) {
       String branch = entry.getKey();
@@ -149,7 +149,7 @@
                                                @NotNull CheckoutRules checkoutRules) throws VcsException {
     if (currentVersion == null)
       return emptyList();
-    CollectChangesContext ctx = new CollectChangesContext(myVcs, myRepoFactory, fromVersion, currentVersion);
+    CollectChangesContext ctx = new CollectChangesContext(myVcs, myRepoFactory, createMercurialProgess(), fromVersion, currentVersion);
     ctx.setProgressConsumer(createProgressConsumer());
     List<ModificationData> changes = collectChanges(ctx, root, asList(fromVersion), currentVersion, checkoutRules);
     changes.addAll(getSubrepoChanges(ctx, root, changes));
@@ -395,6 +395,16 @@
   }
 
 
+  @NotNull
+  private MercurialProgress createMercurialProgess() {
+    try {
+      final VcsOperationProgress progress = myProgressProvider.getProgress();
+      return new MercurialVcsOperationProgress(progress);
+    } catch (IllegalStateException e) {
+      return MercurialProgress.NO_OP;
+    }
+  }
+
   @Nullable
   private ProgressParser.ProgressConsumer createProgressConsumer() {
     try {
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialModificationInfoBuilder.java	Sat Oct 04 23:16:43 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialModificationInfoBuilder.java	Sat Oct 04 23:25:34 2014 +0200
@@ -50,6 +50,7 @@
 
     final CollectChangesContext ctx = new CollectChangesContext(myVcs,
             myRepoFactory,
+            MercurialProgress.NO_OP,
             Collections.<String>emptyList(),
             RepositoryStateData.createVersionState("", Collections.<String, String>emptyMap()));