# HG changeset patch # User Yuya Nishihara # Date 1429191233 -32400 # Node ID 612ed41ae359f458dbdc74f03ce9542d3816859d # Parent 1784ca1483921babd792932d1e4575fda1c3359e annotate: always prepare ancestry context of base fctx (issue4600) This patch extends the workaround introduced by dd01834a696f. Even if the base fctx is the same as intorrev, _ancestrycontext must be built for faster _changeid lookup. repo: https://hg.mozilla.org/releases/mozilla-beta command: hg annotate -r 4954faa47dd0 gfx/thebes/gfxWindowsPlatform.cpp before: 52.450 sec after: 1.820 sec diff -r 1784ca148392 -r 612ed41ae359 mercurial/context.py --- a/mercurial/context.py Sat Apr 04 21:54:12 2015 -0700 +++ b/mercurial/context.py Thu Apr 16 22:33:53 2015 +0900 @@ -919,6 +919,7 @@ introrev = self.introrev() if self.rev() != introrev: base = self.filectx(self.filenode(), changeid=introrev) + if getattr(base, '_ancestrycontext', None) is None: ac = self._repo.changelog.ancestors([introrev], inclusive=True) base._ancestrycontext = ac