diff -r 389693a245fa -r 7002ad149f30 mercurial/manifest.py --- a/mercurial/manifest.py Wed Mar 18 12:03:44 2015 -0500 +++ b/mercurial/manifest.py Wed Mar 18 13:37:18 2015 -0500 @@ -164,7 +164,7 @@ return self.copy() files = match.files() - if (match.matchfn == match.exact or + if ((match.matchfn == match.exact and len(files) < 100) or (not match.anypats() and util.all(fn in self for fn in files))): return self.intersectfiles(files)