# HG changeset patch # User Martin von Zweigbergk # Date 2019-11-05 22:17:58 # Node ID c31fa28d1843c1215b03ebfdd626ee2b3cbe394e # Parent 476754edac1f7600361dc86692f5cc00ebb0c496 repoview: move changelog.strip() override to filteredchangelog Differential Revision: https://phab.mercurial-scm.org/D7242 diff --git a/mercurial/changelog.py b/mercurial/changelog.py --- a/mercurial/changelog.py +++ b/mercurial/changelog.py @@ -404,12 +404,6 @@ class changelog(revlog.revlog): self.filteredrevs = frozenset() self._copiesstorage = opener.options.get(b'copies-storage') - def strip(self, *args, **kwargs): - # XXX make something better than assert - # We can't expect proper strip behavior if we are filtered. - assert not self.filteredrevs - super(changelog, self).strip(*args, **kwargs) - def rev(self, node): """filtered version of revlog.rev""" r = super(changelog, self).rev(node) diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -288,6 +288,12 @@ def wrapchangelog(unfichangelog, filtere revs = self._checknofilteredinrevs(revs) return super(filteredchangelog, self).headrevs(revs) + def strip(self, *args, **kwargs): + # XXX make something better than assert + # We can't expect proper strip behavior if we are filtered. + assert not self.filteredrevs + super(filteredchangelog, self).strip(*args, **kwargs) + cl.__class__ = filteredchangelog return cl