# HG changeset patch # User Martin von Zweigbergk # Date 2019-11-05 22:00:46 # Node ID d630c5710801d4fabedf742a42c1a236b0da8b07 # Parent ec7ba79bf3db903fc69aa204bc9ae2bd036f1b90 repoview: extract a function for wrapping changelog I would like to clean up the changelog class by moving out knowledge of filtering. The filtering will instead be done in a class that wraps the changelog. This patch prepares for that. Differential Revision: https://phab.mercurial-scm.org/D7235 diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -218,6 +218,12 @@ def filterrevs(repo, filtername, visibil return repo.filteredrevcache[filtername] +def wrapchangelog(unfichangelog, filteredrevs): + cl = copy.copy(unfichangelog) + cl.filteredrevs = filteredrevs + return cl + + class repoview(object): """Provide a read/write view of a repo through a filtered changelog @@ -286,8 +292,7 @@ class repoview(object): cl = None # could have been made None by the previous if if cl is None: - cl = copy.copy(unfichangelog) - cl.filteredrevs = revs + cl = wrapchangelog(unfichangelog, revs) object.__setattr__(self, r'_clcache', cl) object.__setattr__(self, r'_clcachekey', newkey) return cl