diff -r 6a9d0d24fdb4 -r aac054e5389b mercurial/context.py --- a/mercurial/context.py Tue Mar 07 17:56:30 2017 -0800 +++ b/mercurial/context.py Tue Mar 07 17:49:50 2017 -0800 @@ -117,10 +117,12 @@ # 1000 and cache it so that when you read 1001, we just need to apply a # delta to what's in the cache. So that's one full reconstruction + one # delta application. + mf2 = None if self.rev() is not None and self.rev() < other.rev(): - self.manifest() + mf2 = self._manifestmatches(match, s) mf1 = other._manifestmatches(match, s) - mf2 = self._manifestmatches(match, s) + if mf2 is None: + mf2 = self._manifestmatches(match, s) modified, added = [], [] removed = []