diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -404,12 +404,6 @@
         self.filteredrevs = frozenset()
         self._copiesstorage = opener.options.get(b'copies-storage')
 
-    def parentrevs(self, rev):
-        """filtered version of revlog.parentrevs"""
-        if rev in self.filteredrevs:
-            raise error.FilteredIndexError(rev)
-        return super(changelog, self).parentrevs(rev)
-
     def flags(self, rev):
         """filtered version of revlog.flags"""
         if rev in self.filteredrevs:
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -318,6 +318,12 @@
                 raise error.FilteredIndexError(rev)
             return super(filteredchangelog, self).linkrev(rev)
 
+        def parentrevs(self, rev):
+            """filtered version of revlog.parentrevs"""
+            if rev in self.filteredrevs:
+                raise error.FilteredIndexError(rev)
+            return super(filteredchangelog, self).parentrevs(rev)
+
     cl.__class__ = filteredchangelog
 
     return cl