changeset 745:ea5b0ed87e18

report commit heads
author eugene.petrenko@jetbrains.com
date Tue, 28 Jan 2014 18:44:27 +0100
parents 789802ac672d
children 4d543673433f
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitsInfoBuilderSupport.java
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitsInfoBuilderSupport.java	Tue Jan 28 18:44:13 2014 +0100
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitsInfoBuilderSupport.java	Tue Jan 28 18:44:27 2014 +0100
@@ -20,11 +20,13 @@
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot;
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.LogCommand;
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.WrongSubrepoUrlException;
+import jetbrains.buildServer.dataStructures.MultiMapToList;
 import jetbrains.buildServer.vcs.*;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import java.util.Date;
+import java.util.Map;
 
 /**
  * Created 30.09.13 13:05
@@ -42,6 +44,15 @@
     myHgVcsRootFactory = vcsRootFactory;
   }
 
+  @NotNull
+  private static MultiMapToList<String, String> commitToBranchs(@NotNull final Map<String, String> branchToCommit) {
+    final MultiMapToList<String, String> map = new MultiMapToList<String, String>();
+    for (Map.Entry<String, String> e : branchToCommit.entrySet()) {
+      map.add(e.getValue(), e.getKey());
+    }
+    return map;
+  }
+
   public void collectCommits(@NotNull final VcsRoot root,
                              @NotNull final CheckoutRules rules,
                              @NotNull final CommitsConsumer consumer) throws VcsException {
@@ -50,7 +61,7 @@
     final ServerHgRepo repo = mySupport.createRepo(hgRoot);
     mySupport.syncRepository(hgRoot);
 
-
+    final MultiMapToList<String, String> heads = commitToBranchs(mySupport.getCollectChangesPolicy().getHeads(hgRoot));
     repo.logSubstates().call(new CommitsAndMountPointsCommand.Callback() {
       private final MercurialCommitsInfoBuilderStates subs = new MercurialCommitsInfoBuilderStates();
 
@@ -108,6 +119,8 @@
           }
         }
 
+        bean.setHeads(heads.getValues(bean.getVersion()));
+
         consumer.consumeCommit(bean);
       }
     });