diff --git a/mercurial/phases.py b/mercurial/phases.py --- a/mercurial/phases.py +++ b/mercurial/phases.py @@ -139,6 +139,7 @@ def _readroots(repo, phasedefaults=None) Return (roots, dirty) where dirty is true if roots differ from what is being stored. """ + repo = repo.unfiltered() dirty = False roots = [set() for i in allphases] try: @@ -184,6 +185,7 @@ class phasecache(object): def getphaserevs(self, repo, rebuild=False): if rebuild or self._phaserevs is None: + repo = repo.unfiltered() revs = [public] * len(repo.changelog) for phase in trackedphases: roots = map(repo.changelog.rev, self.phaseroots[phase]) @@ -228,6 +230,7 @@ class phasecache(object): # Be careful to preserve shallow-copied values: do not update # phaseroots values, replace them. + repo = repo.unfiltered() delroots = [] # set of root deleted by this path for phase in xrange(targetphase + 1, len(allphases)): # filter nodes that are not in a compatible phase already @@ -251,6 +254,7 @@ class phasecache(object): # Be careful to preserve shallow-copied values: do not update # phaseroots values, replace them. + repo = repo.unfiltered() currentroots = self.phaseroots[targetphase] newroots = [n for n in nodes if self.phase(repo, repo[n].rev()) < targetphase] @@ -316,6 +320,7 @@ def listphases(repo): def pushphase(repo, nhex, oldphasestr, newphasestr): """List phases root for serialization over pushkey""" + repo = repo.unfiltered() lock = repo.lock() try: currentphase = repo[nhex].phase() @@ -340,6 +345,7 @@ def analyzeremotephases(repo, subset, ro Accept unknown element input """ + repo = repo.unfiltered() # build list from dictionary draftroots = [] nodemap = repo.changelog.nodemap # to filter unknown nodes @@ -367,6 +373,7 @@ def newheads(repo, heads, roots): * `heads`: define the first subset * `roots`: define the second we subtract from the first""" + repo = repo.unfiltered() revset = repo.set('heads((%ln + parents(%ln)) - (%ln::%ln))', heads, roots, roots, heads) return [c.node() for c in revset]