Mercurial > evolve
comparison hgext3rd/topic/evolvebits.py @ 2922:66357d4d03b2
topic: centralize compatibility logic between hg versions into compat module
This patch can delay loading obsutil and obsolete modules until they
are actually used at "hg topics" or so, if demandimport of Mercurial
is enabled.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 10 Sep 2017 22:41:54 +0900 |
parents | 8a222745a71c |
children |
comparison
equal
deleted
inserted
replaced
2921:23c9600607e7 | 2922:66357d4d03b2 |
---|---|
1 import collections | 1 import collections |
2 from mercurial import obsolete | |
3 | 2 |
4 successorssets = None | 3 from . import compat |
5 try: | |
6 from mercurial import obsutil | |
7 successorssets = getattr(obsutil, 'successorssets', None) | |
8 except ImportError: | |
9 pass | |
10 | |
11 if successorssets is None: | |
12 successorssets = obsolete.successorssets | |
13 | 4 |
14 # Copied from evolve 081605c2e9b6 | 5 # Copied from evolve 081605c2e9b6 |
15 | 6 |
16 def _orderrevs(repo, revs): | 7 def _orderrevs(repo, revs): |
17 """Compute an ordering to solve instability for the given revs | 8 """Compute an ordering to solve instability for the given revs |
80 | 71 |
81 if not p.obsolete(): | 72 if not p.obsolete(): |
82 return p.rev() | 73 return p.rev() |
83 obs = repo[p] | 74 obs = repo[p] |
84 ui = repo.ui | 75 ui = repo.ui |
85 newer = successorssets(repo, obs.node()) | 76 newer = compat.successorssets(repo, obs.node()) |
86 # search of a parent which is not killed | 77 # search of a parent which is not killed |
87 while not newer: | 78 while not newer: |
88 ui.debug("stabilize target %s is plain dead," | 79 ui.debug("stabilize target %s is plain dead," |
89 " trying to stabilize on its parent\n" % | 80 " trying to stabilize on its parent\n" % |
90 obs) | 81 obs) |
91 obs = obs.parents()[0] | 82 obs = obs.parents()[0] |
92 newer = successorssets(repo, obs.node()) | 83 newer = compat.successorssets(repo, obs.node()) |
93 if len(newer) > 1 or len(newer[0]) > 1: | 84 if len(newer) > 1 or len(newer[0]) > 1: |
94 raise MultipleSuccessorsError(newer) | 85 raise MultipleSuccessorsError(newer) |
95 | 86 |
96 return repo[newer[0][0]].rev() | 87 return repo[newer[0][0]].rev() |
97 | 88 |