evolve: store the old other divergent node after relocation in evolvestate
authorPulkit Goyal <7895pulkit@gmail.com>
Sun, 10 Jun 2018 22:52:11 +0530
changeset 3825 b5dfa78073b9
parent 3824 a8f509981d30
child 3826 8e8bd5bb2f90
evolve: store the old other divergent node after relocation in evolvestate When the content-divergent changes are on different parents and we relocate of the node to the parent of another one, we get a new other-divergent node. We still need to store the older other-divergent in evolvestate so that we can use that information.
hgext3rd/evolve/evolvecmd.py
--- a/hgext3rd/evolve/evolvecmd.py	Sun Jun 10 22:42:57 2018 +0530
+++ b/hgext3rd/evolve/evolvecmd.py	Sun Jun 10 22:52:11 2018 +0530
@@ -351,6 +351,9 @@
     # below.
     evolvestate['relocated'] = None
     evolvestate['relocating'] = False
+    # in case or relocation we get a new other node, we need to store the old
+    # other for purposes like `--abort` or `--stop`
+    evolvestate['old-other'] = None
     base, others = divergentdata(divergent)
 
     # we don't handle split in content-divergence yet
@@ -464,6 +467,7 @@
             evolvestate['current'] = other.node()
             evolvestate.save()
             raise
+        evolvestate['old-other'] = other.node()
         other = repo[newother]
         evolvestate['relocating'] = False
         evolvestate['relocated'] = other.node()