Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 16:05:53 +0100] rev 5207
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.
Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 16:04:06 +0100] rev 5206
evolve: support ancestor of orphan split with unrelated changeset in between
This is done by searching for roots and heads within the range delimited on
both sides by the target revs instead of just within the target revs.
Example:
o 5
|
o 4
|
o 3
|
| * 2
| |
| x 1
|/
o 0
1 is obsoleted by 3 and 5. We are considering the case when 2 gets evolved.
Before the change, both roots and heads were [3, 5]. The user was offered a
choice between 3 and 5 as the destination.
After the change, roots are [3] and heads are [5]. 5 is chosen as the
destination.