# HG changeset patch # User Dmitry Neverov # Date 1379353892 -14400 # Node ID 2f6c4b61686aefcd70803832fcec6efac17fbf3b # Parent 4d76b4b8b8146a44138e075346d97e810d2c2e69 Don't throw errors for merge into same branch diff -r 4d76b4b8b814 -r 2f6c4b61686a mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java --- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java Mon Aug 26 16:22:35 2013 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java Mon Sep 16 21:51:32 2013 +0400 @@ -182,6 +182,7 @@ checkFileNotUnderTheRoot(stderr); checkConnectionRefused(stderr); checkAbandonedTransaction(stderr); + checkMergeWithWorkDirAncestor(stderr); } private void checkUnrelatedRepository(@NotNull final String stderr) throws UnrelatedRepositoryException { @@ -223,6 +224,11 @@ throw new AbandonedTransactionFound(); } + private void checkMergeWithWorkDirAncestor(@NotNull final String stderr) throws MergeWithWorkingDirAncestor { + if (stderr.equals("abort: merging with a working directory ancestor has no effect")) + throw new MergeWithWorkingDirAncestor(); + } + private static Set setOf(Integer... ints) { return new HashSet(asList(ints)); } diff -r 4d76b4b8b814 -r 2f6c4b61686a mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/exception/MergeWithWorkingDirAncestor.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/exception/MergeWithWorkingDirAncestor.java Mon Sep 16 21:51:32 2013 +0400 @@ -0,0 +1,11 @@ +package jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception; + +import jetbrains.buildServer.vcs.VcsException; + +public class MergeWithWorkingDirAncestor extends VcsException { + + public MergeWithWorkingDirAncestor() { + super("Merging with a working directory ancestor"); + } + +} diff -r 4d76b4b8b814 -r 2f6c4b61686a mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java --- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java Mon Aug 26 16:22:35 2013 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java Mon Sep 16 21:51:32 2013 +0400 @@ -2,6 +2,7 @@ import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.MergeConflictException; +import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.MergeWithWorkingDirAncestor; import jetbrains.buildServer.vcs.*; import org.jetbrains.annotations.NotNull; import com.intellij.openapi.diagnostic.Logger; @@ -52,6 +53,8 @@ List conflicts = repo.resolve().call(); result.setSuccess(false); result.setConflicts(conflicts); + } catch (MergeWithWorkingDirAncestor e) { + //ignore } catch (VcsException e) { result.setSuccess(false); } @@ -92,6 +95,8 @@ mergeResult.addConflict(conflict); } return mergeResult; + } catch (MergeWithWorkingDirAncestor e) { + return mergeResult; } repo.commit().message(message).call(); diff -r 4d76b4b8b814 -r 2f6c4b61686a mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MergeSupportTest.java --- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MergeSupportTest.java Mon Aug 26 16:22:35 2013 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MergeSupportTest.java Mon Sep 16 21:51:32 2013 +0400 @@ -105,4 +105,11 @@ assertThat(results.get(topic2ToDefault).getConflicts(), hasItem("b/c")); assertTrue(results.get(topic1ToTopic2).isSuccess()); } + + + public void merge_into_same_branch(@NotNull HgVersion _) throws Exception { + VcsRoot root = vcsRoot().withUrl(myRemoteRepo).build(); + MergeResult result = myMergeSupport.merge(root, "6370ce18689a", "default", "merge into same branch", new MergeOptions()); + assertTrue(result.isSuccess()); + } } diff -r 4d76b4b8b814 -r 2f6c4b61686a mercurial-tests/testData/merge/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-tests/testData/merge/README Mon Sep 16 21:51:32 2013 +0400 @@ -0,0 +1,11 @@ +no.subrepos + +o changeset: 4:79d836707416 topic2 +| +| o changeset: 3:2742914d19b2 topic1 +|/ +| o changeset: 2:09dd527b77ec +|/ +o changeset: 1:6370ce18689a +| +o changeset: 0:7e3988f0f412