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
--- 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