files: use ctx.matches instead of ctx.walk
ctx.matches() is an optimized form of ctx.walk() when we don't care about the
state of files on disk.
For a large repo, 'hg files > /dev/null' drops from 3.7 seconds to 2.3.
--- a/mercurial/commands.py Tue Sep 30 15:45:48 2014 -0700
+++ b/mercurial/commands.py Tue Sep 30 14:39:58 2014 -0700
@@ -3219,7 +3219,7 @@
fmt = '%s' + end
m = scmutil.match(ctx, pats, opts)
- for f in ctx.walk(m):
+ for f in ctx.matches(m):
if rev is None and repo.dirstate[f] in 'r?!':
continue
fm.startitem()