Mercurial > hg > mercurial
changeset 643:2f6c4b61686a
Don't throw errors for merge into same branch
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 16 Sep 2013 21:51:32 +0400 |
parents | 4d76b4b8b814 |
children | 96af0d63f80a |
files | mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/exception/MergeWithWorkingDirAncestor.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MergeSupportTest.java mercurial-tests/testData/merge/README |
diffstat | 5 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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<Integer> setOf(Integer... ints) { return new HashSet<Integer>(asList(ints)); }
--- /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"); + } + +}
--- 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<String> 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();
--- 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()); + } }
--- /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