evolve: always order the revs to be evolved
The current code only order the revs if we are resolving orphans and not in
other case. The ordering is important when we pass --all and tackle multiple
occurence of the same instability.
Let's order the revs for each instability. There are enough test coverage of
phase-divergence and content-divergence that I feel confident doing it because
none of the test changed.
The change in test-evolve-content-divergent.t demonstrates the indeed ordering
helped.
--- a/hgext3rd/evolve/evolvecmd.py Tue Jun 12 21:13:02 2018 +0530
+++ b/hgext3rd/evolve/evolvecmd.py Tue Jun 12 23:20:54 2018 +0530
@@ -1452,8 +1452,7 @@
# For the progress bar to show
count = len(revs)
# Order the revisions
- if targetcat == 'orphan':
- revs = _orderrevs(repo, revs)
+ revs = _orderrevs(repo, revs)
# cbor does not know how to serialize sets, using list for skippedrevs
stateopts = {'category': targetcat, 'replacements': {},
--- a/tests/test-evolve-content-divergence.t Tue Jun 12 21:13:02 2018 +0530
+++ b/tests/test-evolve-content-divergence.t Tue Jun 12 23:20:54 2018 +0530
@@ -868,14 +868,6 @@
XXX: we are not resolving divergence in the correct order here
$ hg evolve --all --content-divergent
- skipping c72d2885eb51: have a different parent than 513e3267034e (not handled yet)
- | c72d2885eb51, 513e3267034e are not based on the same changeset.
- | With the current state of its implementation,
- | evolve does not work in that case.
- | rebase one of them next to the other and run
- | this command again.
- | - either: hg rebase --dest 'p1(c72d2885eb51)' -r 513e3267034e
- | - or: hg rebase --dest 'p1(513e3267034e)' -r c72d2885eb51
merge:[5] watbar to a
with: [9] watbar to a
base: [1] added a
@@ -910,6 +902,14 @@
| this command again.
| - either: hg rebase --dest 'p1(3ce4be6d8e5e)' -r accb7a2b6ae9
| - or: hg rebase --dest 'p1(accb7a2b6ae9)' -r 3ce4be6d8e5e
+ skipping c72d2885eb51: have a different parent than 513e3267034e (not handled yet)
+ | c72d2885eb51, 513e3267034e are not based on the same changeset.
+ | With the current state of its implementation,
+ | evolve does not work in that case.
+ | rebase one of them next to the other and run
+ | this command again.
+ | - either: hg rebase --dest 'p1(c72d2885eb51)' -r 513e3267034e
+ | - or: hg rebase --dest 'p1(513e3267034e)' -r c72d2885eb51
working directory is now at df46e196f3c4
$ hg glog