[PATCH 11 of 14 clfilter part 1 V2] clfilter: unfilter computation of obsolescence related computation

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Mon Nov 26 12:34:44 CST 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1349708100 -7200
# Node ID 1516da61958caab0b1daf1425f08241570261239
# Parent  b9ebcec0ad73a39cd0ca90fa96b1cd4127c1f513
clfilter: unfilter computation of obsolescence related computation

All obsolescence related set need to be computed on the full unfiltered version
of the repository. In particular because several of them (obsolete, extinct) are
used to compute the hidden revision.

On filtered repo, revset predicate related to these set will be properly filtered
because of revset own prefiltering.

diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -424,10 +424,11 @@ def cachefor(name):
 
 def getrevs(repo, name):
     """Return the set of revision that belong to the <name> set
 
     Such access may compute the set and cache it for future use"""
+    repo = repo.unfiltered()
     if not repo.obsstore:
         return ()
     if name not in repo.obsstore.caches:
         repo.obsstore.caches[name] = cachefuncs[name](repo)
     return repo.obsstore.caches[name]


More information about the Mercurial-devel mailing list