# HG changeset patch # User Sushil khanchi # Date 1554233433 -19800 # Node ID 6fc5e162ea84f6626acffe2309e2324e6679de7c # Parent cc4506838589a1b40fc52d4aa9b99c8d7ea4f276 evolve: refactor the code which swap two nodes (in divergence resolution) I see that we are using the code to swap the "divergent" and "other" node; and updating the evolvestate accordingly at many places in divergence resolution. This patch extract that code to a function. Although I don't have strong opinion on this patch. It's a volunteered patch to remove some redundancy. diff -r cc4506838589 -r 6fc5e162ea84 hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py Tue Apr 02 18:01:43 2019 +0530 +++ b/hgext3rd/evolve/evolvecmd.py Wed Apr 03 01:00:33 2019 +0530 @@ -376,6 +376,11 @@ evolvestate['other-divergent'] = other.node() evolvestate['base'] = base.node() + def swapnodes(div, other): + div, other = other, div + evolvestate['divergent'] = div.node() + evolvestate['other-divergent'] = other.node() + return div, other # haspubdiv: to keep track if we are solving public content-divergence haspubdiv = False if not (divergent.mutable() and other.mutable()): @@ -384,9 +389,7 @@ # (as divergent is kept at local side, pinning public -> divergent) if divergent.mutable(): publicdiv = other - divergent, other = other, divergent - evolvestate['divergent'] = divergent.node() - evolvestate['other-divergent'] = other.node() + divergent, other = swapnodes(divergent, other) else: publicdiv = divergent evolvestate['public-divergent'] = publicdiv.node() @@ -461,9 +464,7 @@ relocatereq = True if not haspubdiv: # can't swap when public divergence, as public can't move - divergent, other = other, divergent - evolvestate['divergent'] = divergent.node() - evolvestate['other-divergent'] = other.node() + divergent, other = swapnodes(divergent, other) resolutionparent = repo[otherp1].node() elif divonly: relocatereq = True @@ -485,9 +486,7 @@ # Otherwise, we are going to rebase the "behind" branch up to the new # brancmap level. if not haspubdiv: - divergent, other = other, divergent - evolvestate['divergent'] = divergent.node() - evolvestate['other-divergent'] = other.node() + divergent, other = swapnodes(divergent, other) resolutionparent = divergent.p1().node() else: msg = _("skipping %s: have a different parent than %s "