Mercurial > hg > mercurial
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"; + } }; }