diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -405,12 +405,6 @@
         self.filteredrevs = frozenset()
         self._copiesstorage = opener.options.get(b'copies-storage')
 
-    def tiprev(self):
-        """filtered version of revlog.tiprev"""
-        for i in pycompat.xrange(len(self) - 1, -2, -1):
-            if i not in self.filteredrevs:
-                return i
-
     def __contains__(self, rev):
         """filtered version of revlog.__contains__"""
         return 0 <= rev < len(self) and rev not in self.filteredrevs
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -222,7 +222,12 @@
     cl.filteredrevs = filteredrevs
 
     class filteredchangelog(cl.__class__):
-        pass
+
+        def tiprev(self):
+            """filtered version of revlog.tiprev"""
+            for i in pycompat.xrange(len(self) - 1, -2, -1):
+                if i not in self.filteredrevs:
+                    return i
 
     cl.__class__ = filteredchangelog