diff -r ff6b0a20849d -r 7269b87f817c mercurial/scmutil.py --- a/mercurial/scmutil.py Mon Apr 16 23:39:30 2018 -0400 +++ b/mercurial/scmutil.py Sat Apr 14 18:50:45 2018 -0400 @@ -1357,9 +1357,20 @@ 'unbundle', ] -# a list of (repo, ctx, files) functions called by various commands to allow -# extensions to ensure the corresponding files are available locally, before the -# command uses them. +def prefetchfiles(repo, revs, match): + """Invokes the registered file prefetch functions, allowing extensions to + ensure the corresponding files are available locally, before the command + uses them.""" + if match: + # The command itself will complain about files that don't exist, so + # don't duplicate the message. + match = matchmod.badmatch(match, lambda fn, msg: None) + else: + match = matchall(repo) + + fileprefetchhooks(repo, revs, match) + +# a list of (repo, revs, match) prefetch functions fileprefetchhooks = util.hooks() # A marker that tells the evolve extension to suppress its own reporting