Mercurial > hg
changeset 22370:45e02cfad4bd
revert: add a way for external extensions to prefetch file data
This allow extensions that mess with the storage layer (remotefilelog,
largefile) to prefetch any data that will be accessed during the revert
operation.
We are currently fetching more data than theoretically required because the
backup code is a bit stupid. Future patches will improve that.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Sat, 30 Aug 2014 02:47:59 +0200 |
parents | 897041f6b025 |
children | 81ad62defef5 |
files | mercurial/cmdutil.py |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sun Sep 07 11:46:11 2014 -0500 +++ b/mercurial/cmdutil.py Sat Aug 30 02:47:59 2014 +0200 @@ -2527,6 +2527,9 @@ (unknown, actions['unknown'], discard), ) + needdata = ('revert', 'add', 'remove', 'undelete') + _revertprefetch(repo, ctx, *[actions[name][0] for name in needdata]) + for abs, (rel, exact) in sorted(names.items()): # target file to be touch on disk (relative to cwd) target = repo.wjoin(abs) @@ -2564,6 +2567,10 @@ finally: wlock.release() +def _revertprefetch(repo, ctx, *files): + """Let extension changing the storage layer prefetch content""" + pass + def _performrevert(repo, parents, ctx, actions): """function that actually perform all the actions computed for revert