Mercurial > evolve
view tests/test-evolve-issue5966.t @ 5207:a5876853ba15 stable
evolve: support successors of ancestor of orphan with multiple roots
The previous code checked that the set of successors has a single root.
However, there’s no reason to require that in general.
Example:
o 6
|
o 5
|\
| o 4
| |
o | 3
|/
| * 2
| |
| x 1
|/
o 0
1 is obsoleted by 3, 4 and 6. We are considering the case when 2 gets evolved.
The roots are [3, 4] and the heads are [6]. Before the change, the user was
asked which destination to choose, but there was only one choice (6). After the
change, 6 is chosen as the destination.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Wed, 11 Mar 2020 16:05:53 +0100 |
parents | b6c819facbe8 |
children | e5d91fd1f319 6eb9f82b43ba |
line wrap: on
line source
Testing evolve --continue with unresolved conflicts (issue5966) https://bz.mercurial-scm.org/show_bug.cgi?id=5966 $ . $TESTDIR/testlib/common.sh $ hg init issue5966 $ cd issue5966 $ cat > .hg/hgrc << EOF > [phases] > publish = false > [alias] > glog = log -GT "{rev}: {desc}" > [extensions] > evolve= > EOF $ touch a $ hg ci -Aqm 'empty' $ echo apple > a $ hg ci -m 'apple' $ echo banana > a $ hg ci -m 'banana' $ echo coconut > a $ hg ci -m 'coconut' $ hg glog @ 3: coconut | o 2: banana | o 1: apple | o 0: empty $ hg up -q 1 Amending revision 1 in a way that causes conflicts $ echo apricot > a $ hg amend -m 'apricot' 2 new orphan changesets $ hg glog --hidden @ 4: apricot | | * 3: coconut | | | * 2: banana | | | x 1: apple |/ o 0: empty $ hg evolve -t :fail --rev 'first(orphan())' move:[2] banana atop:[4] apricot unresolved merge conflicts (see 'hg help evolve.interrupted') [1] $ hg evolve --list 34a690fcf6ab: banana orphan: 7f59f18ca4a9 (obsolete parent) feb8c0bffa1f: coconut orphan: 34a690fcf6ab (orphan parent) Evolve should detect unresolved conflict. $ hg resolve --list U a $ hg evolve --continue abort: unresolved merge conflicts (see 'hg help resolve') [255] (even when ran twice) $ hg evolve --continue abort: unresolved merge conflicts (see 'hg help resolve') [255] $ cat a apricot $ hg resolve --list U a $ hg resolve a -t :other (no more unresolved files) continue: hg evolve --continue $ hg resolve --list R a $ hg evolve --continue evolving 2:34a690fcf6ab "banana" working directory is now at 581a2bb4704c $ hg resolve --list evolve the rest of the stack $ hg evolve move:[3] coconut atop:[5] banana merging a All commit evolved $ hg glog o 6: coconut | o 5: banana | @ 4: apricot | o 0: empty