fix nodestate computation
diff --git a/states.py b/states.py --- a/states.py +++ b/states.py @@ -228,13 +228,12 @@ def reposetup(ui, repo): def nodestate(self, node): rev = self.changelog.rev(node) - for state in STATES[::-1]: + for state in STATES: # XXX avoid for untracked heads if state.next is not None: - for head in self.stateheads(state): - revhead = self.changelog.rev(head) - if self.changelog.descendant(revhead, rev): - return state.next + revs = scmutil.revrange(self, ["::%s()" % state.headssymbol]) + if rev in revs: + break return state