evolve: always order the revs to be evolved
authorPulkit Goyal <7895pulkit@gmail.com>
Tue, 12 Jun 2018 23:20:54 +0530
changeset 3845 5c964ebe4d4b
parent 3844 48fbccfd1dff
child 3846 f9dad99a90d5
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.
hgext3rd/evolve/evolvecmd.py
tests/test-evolve-content-divergence.t
--- 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