subrepo: add "_cachestorehashvfs" to handle cache store hash files via vfs
This "vfs" object will be used by subsequent patches to handle cache
store hash files without direct file APIs.
This patch decorates "_cachestorehashvfs" with "@propertycache" to
delay vfs creation, because it is used only for cooperation with other
repositories.
In this patch, "/" is used as the path separator, even though
"self._repo.join" uses platform specific path separator (e.g. "\\" on
Windows). But it is reasonable enough, because "store" and other
management file handling already include such implementation, and they
work well.
--- a/mercurial/subrepo.py Wed Nov 19 18:35:14 2014 +0900
+++ b/mercurial/subrepo.py Wed Nov 19 18:35:14 2014 +0900
@@ -566,6 +566,10 @@
return self._repo.join(os.path.join(
'cache', 'storehash', _getstorehashcachename(remotepath)))
+ @propertycache
+ def _cachestorehashvfs(self):
+ return scmutil.vfs(self._repo.join('cache/storehash'))
+
def _readstorehashcache(self, remotepath):
'''read the store hash cache for a given remote repository'''
cachefile = self._getstorehashcachepath(remotepath)