diff -r 42342f9afe01 -r fe5f044b753d mercurial/changelog.py --- a/mercurial/changelog.py Sun Oct 26 12:14:10 2014 +0100 +++ b/mercurial/changelog.py Sun Oct 26 12:14:12 2014 +0100 @@ -172,10 +172,10 @@ def headrevs(self): if self.filteredrevs: try: - return self.index.headrevs(self.filteredrevs) - # AttributeError covers non-c-extension environments. - # TypeError allows us work with old c extensions. - except (AttributeError, TypeError): + return self.index.headrevsfiltered(self.filteredrevs) + # AttributeError covers non-c-extension environments and + # old c extensions without filter handling. + except AttributeError: return self._headrevs() return super(changelog, self).headrevs()