diff -r fe17a6fb220d -r a4958cdb2202 mercurial/context.py --- a/mercurial/context.py Tue Dec 23 18:30:46 2014 -0800 +++ b/mercurial/context.py Wed Dec 31 17:55:43 2014 +0900 @@ -1444,7 +1444,9 @@ s = super(workingctx, self)._buildstatus(other, s, match, listignored, listclean, listunknown) - self._status = s + elif match.always(): + # cache for performance + self._status = s return s def _matchstatus(self, other, match):