From patchwork Sat Nov 8 01:27:27 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 2, stable] tests: add test for rebasing merges with ancestors of the rebase destination From: Mads Kiilerich X-Patchwork-Id: 6648 Message-Id: <8f689654b7d3d6b7c2b3.1415410047@localhost.localdomain> To: mercurial-devel@selenic.com Date: Sat, 08 Nov 2014 02:27:27 +0100 # HG changeset patch # User Mads Kiilerich # Date 1415409335 -3600 # Sat Nov 08 02:15:35 2014 +0100 # Branch stable # Node ID 8f689654b7d3d6b7c2b370cd5e38198b625e4fc6 # Parent c35ffa4249cab47a1e089a30bc16fc65a0727f48 tests: add test for rebasing merges with ancestors of the rebase destination This shows sub-optimal behaviour. The user get a merge prompt that is very hard to explain. diff --git a/tests/test-rebase-newancestor.t b/tests/test-rebase-newancestor.t --- a/tests/test-rebase-newancestor.t +++ b/tests/test-rebase-newancestor.t @@ -53,3 +53,42 @@ $ cd .. + + +Test rebasing of merges with ancestors of the rebase destination - a situation +that often happens when trying to rebase instead of repeated merges. + + $ hg init repo2 + $ cd repo2 + $ touch f + $ hg ci -Aqm 'f' + $ echo stuff > f + $ hg ci -m 'f stuff' + $ hg rm f + $ hg ci -m 'remove f' + $ hg up -qr0 + $ hg branch -q dev + $ hg ci -qm 'dev' + $ hg merge -q 1 + $ hg ci -m 'merge f stuff' + $ hg merge -q 2 + $ hg ci -m 'merge remove f' + $ touch devstuff + $ hg ci -Aqm 'real dev stuff' + $ hg rebase -r 'branch(dev)' -d default + remote changed f which local deleted + use (c)hanged version or leave (d)eleted? c + local changed f which remote deleted + use (c)hanged version or (d)elete? c + saved backup bundle to $TESTTMP/repo2/.hg/strip-backup/*-backup.hg (glob) + $ hg tglog + @ 4: 'real dev stuff' + | + o 3: 'merge f stuff' + | + o 2: 'remove f' + | + o 1: 'f stuff' + | + o 0: 'f' +