diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -994,10 +994,10 @@ def _computephasedivergentset(repo): public = phases.public cl = repo.changelog torev = cl.nodemap.get - for ctx in repo.set('(not public()) and (not obsolete())'): - rev = ctx.rev() + tonode = cl.node + for rev in repo.revs('(not public()) and (not obsolete())'): # We only evaluate mutable, non-obsolete revision - node = ctx.node() + node = tonode(rev) # (future) A cache of predecessors may worth if split is very common for pnode in obsutil.allpredecessors(repo.obsstore, [node], ignoreflags=bumpedfix):