diff -r 533f04d4cb6d -r 264b90a060b7 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Sun Feb 04 14:31:32 2018 -0500 +++ b/mercurial/cmdutil.py Sun Feb 04 15:26:49 2018 -0500 @@ -2188,12 +2188,16 @@ mfnode = ctx.manifestnode() try: if mfnode and mfl[mfnode].find(file)[0]: + _prefetchfiles(repo, ctx, [file]) write(file) return 0 except KeyError: pass - for abs in ctx.walk(matcher): + files = [f for f in ctx.walk(matcher)] + _prefetchfiles(repo, ctx, files) + + for abs in files: write(abs) err = 0