changeset 671:3cc513b9e3c1

Use non-interactive merge
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 16 Oct 2013 14:33:41 +0400
parents 718e4dbff3c3
children 8b09ec36fbef
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MergeCommand.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java
diffstat 5 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MergeCommand.java	Tue Oct 15 22:46:42 2013 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MergeCommand.java	Wed Oct 16 14:33:41 2013 +0400
@@ -8,6 +8,7 @@
 
 public class MergeCommand extends BaseCommand {
 
+  private String myMergeTool;
   private String myRevision;
 
   public MergeCommand(@NotNull CommandSettings commandSettings,
@@ -21,11 +22,18 @@
     return this;
   }
 
+  public MergeCommand withMergeTool(@NotNull String mergeTool) {
+    myMergeTool = mergeTool;
+    return this;
+  }
+
   public void call() throws VcsException {
     MercurialCommandLine cmd = createCommandLine();
     cmd.addParameter("merge");
     if (myRevision != null)
       cmd.addParameters("-r", myRevision);
+    if (myMergeTool != null)
+      cmd.addParameters("--tool", myMergeTool);
     CommandResult result = runCommand(cmd);
     if (result.getExitCode() == 1)
       throw new MergeConflictException();
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java	Tue Oct 15 22:46:42 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java	Wed Oct 16 14:33:41 2013 +0400
@@ -48,7 +48,7 @@
         try {
           new CheckoutRepository(myMirrorManager, myHgRepoFactory, myConfig.getPullTimeout(), myConfig.useTagsAsBranches(), hgRoot, tmpDir)
                   .setRevision(task.getDestinationRevision()).checkout();
-          repo.merge().revision(task.getSourceRevision()).call();
+          repo.merge().withMergeTool(myConfig.getMergeTool()).revision(task.getSourceRevision()).call();
           results.put(task, MergeResult.createMergeSuccessResult());
         } catch (MergeConflictException e) {
           results.put(task, MergeResult.createMergeError(detectConflicts(hgRoot, "", repo)));
@@ -87,7 +87,7 @@
 
       HgRepo repo = myHgRepoFactory.createRepo(hgRoot, tmpDir);
       try {
-        repo.merge().revision(srcRevision).call();
+        repo.merge().withMergeTool(myConfig.getMergeTool()).revision(srcRevision).call();
       } catch (MergeConflictException e) {
         return MergeResult.createMergeError(detectConflicts(hgRoot, "", repo));
       } catch (MergeWithWorkingDirAncestor e) {
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Tue Oct 15 22:46:42 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfig.java	Wed Oct 16 14:33:41 2013 +0400
@@ -37,4 +37,6 @@
   public boolean allowSourceCaching();
 
   public int listFilesTTLSeconds();
+
+  public String getMergeTool();
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Tue Oct 15 22:46:42 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigImpl.java	Wed Oct 16 14:33:41 2013 +0400
@@ -100,4 +100,8 @@
   public int listFilesTTLSeconds() {
     return TeamCityProperties.getInteger("teamcity.hg.listFilesTTLSeconds", 60);
   }
+
+  public String getMergeTool() {
+    return TeamCityProperties.getProperty("teamcity.hg.mergeTool", "internal:merge");
+  }
 }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Tue Oct 15 22:46:42 2013 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ServerPluginConfigBuilder.java	Wed Oct 16 14:33:41 2013 +0400
@@ -86,6 +86,10 @@
       public int listFilesTTLSeconds() {
         return 0;
       }
+
+      public String getMergeTool() {
+        return "internal:merge";
+      }
     };
   }