diff -r dd3bccb4b820 -r 82b82168d045 mercurial/context.py --- a/mercurial/context.py Wed Mar 18 09:26:26 2015 -0700 +++ b/mercurial/context.py Wed Mar 18 11:42:09 2015 -0700 @@ -588,10 +588,6 @@ def walk(self, match): fset = set(match.files()) - # for dirstate.walk, files=['.'] means "walk the whole tree". - # follow that here, too - fset.discard('.') - # avoid the entire walk if we're only looking for specific files if fset and not match.anypats(): if util.all(fn in self for fn in fset): @@ -606,6 +602,9 @@ fset.remove(fn) if match(fn): yield fn + # for dirstate.walk, files=['.'] means "walk the whole tree". + # follow that here, too + fset.discard('.') for fn in sorted(fset): if not self.hasdir(fn): match.bad(fn, _('no such file in rev %s') % self)