diff -r 89796a25d4bb -r 4470508eb6f2 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Jul 03 11:22:00 2017 +0200 +++ b/mercurial/localrepo.py Tue Jul 04 23:13:46 2017 +0900 @@ -66,6 +66,11 @@ urlerr = util.urlerr urlreq = util.urlreq +# set of (path, vfs-location) tuples. vfs-location is: +# - 'plain for vfs relative paths +# - '' for svfs relative paths +_cachedfiles = set() + class _basefilecache(scmutil.filecache): """All filecache usage on repo are done for logic that should be unfiltered """ @@ -80,11 +85,21 @@ class repofilecache(_basefilecache): """filecache for files in .hg but outside of .hg/store""" + def __init__(self, *paths): + super(repofilecache, self).__init__(*paths) + for path in paths: + _cachedfiles.add((path, 'plain')) + def join(self, obj, fname): return obj.vfs.join(fname) class storecache(_basefilecache): """filecache for files in the store""" + def __init__(self, *paths): + super(storecache, self).__init__(*paths) + for path in paths: + _cachedfiles.add((path, '')) + def join(self, obj, fname): return obj.sjoin(fname)