# HG changeset patch # User Pierre-Yves David # Date 1574376411 -3600 # Node ID c472970339d207805762b3e8b4b04263f6fe3066 # Parent 5a012404503b38de90d055963045d277b64d44c8 changectx: use unfiltered changelog to walk ancestors in annotate Since we are only walking ancestors, it is safe to use an unfiltered repository. (Because if the original rev is not filtered, none of its ancestors will be). Differential Revision: https://phab.mercurial-scm.org/D7501 diff -r 5a012404503b -r c472970339d2 mercurial/context.py --- a/mercurial/context.py Thu Nov 21 23:25:08 2019 +0100 +++ b/mercurial/context.py Thu Nov 21 23:46:51 2019 +0100 @@ -1161,7 +1161,9 @@ # use linkrev to find the first changeset where self appeared base = self.introfilectx() if getattr(base, '_ancestrycontext', None) is None: - cl = self._repo.changelog + # it is safe to use an unfiltered repository here because we are + # walking ancestors only. + cl = self._repo.unfiltered().changelog if base.rev() is None: # wctx is not inclusive, but works because _ancestrycontext # is used to test filelog revisions diff -r 5a012404503b -r c472970339d2 tests/test-repo-filters-tiptoe.t --- a/tests/test-repo-filters-tiptoe.t Thu Nov 21 23:25:08 2019 +0100 +++ b/tests/test-repo-filters-tiptoe.t Thu Nov 21 23:46:51 2019 +0100 @@ -136,13 +136,11 @@ - file with a single change $ hg annotate a - debug.filters: computing revision filter for "visible" 0: a - file with multiple change $ hg annotate z - debug.filters: computing revision filter for "visible" 0: some line 1: in a 2: file