# HG changeset patch # User Pierre-Yves David # Date 1353953473 -3600 # Node ID 8899bf48116a1110c08a5fad2b322aa2415c22b9 # Parent 1a6f8820eb7109cb3c5264d76a7ef699903e0f0c clfilter: introduce an `unfilteredmethod` decorator This decorator ensure the method in run on an unfiltered version of the repository. See follow-up commit for details. This decorator is not named `unfiltered` because it would clash with the `unfilteredmethod` on `localrepo` itself. diff -r 1a6f8820eb71 -r 8899bf48116a mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Nov 21 00:36:29 2012 +0100 +++ b/mercurial/localrepo.py Mon Nov 26 19:11:13 2012 +0100 @@ -23,6 +23,12 @@ def join(self, obj, fname): return obj.sjoin(fname) +def unfilteredmeth(orig): + """decorate method that always need to be run on unfiltered version""" + def wrapper(repo, *args, **kwargs): + return orig(repo.unfiltered(), *args, **kwargs) + return wrapper + MODERNCAPS = set(('lookup', 'branchmap', 'pushkey', 'known', 'getbundle')) LEGACYCAPS = MODERNCAPS.union(set(['changegroupsubset']))