comparison mercurial/statichttprepo.py @ 33533:4133c0b0fcd7

cachevfs: add a vfs dedicated to cache Most of the cache content lives in '.hg/cache/'. Moreover they are computed exclusively from data in the '.hg/store' directory. This creates issues with the share extension as the '.hg/store' directory is shared but the '.hg/cache' is not. On large repositories, this makes this prevent some usage of the share extension inefficient as some caches can take minutes to be recomputed. To improve the situation, we introduce a new 'cachevfs' that will be dedicated to cache reading and writing. In the next patches of this series, we'll migrate the 4 existing caches to it and update the share extension.
author Boris Feld <boris.feld@octobus.net>
date Sat, 15 Jul 2017 23:05:04 +0200
parents 7e89bd0cfb86
children 8b00c723cee1
comparison
equal deleted inserted replaced
33532:d645fdfb749f 33533:4133c0b0fcd7
122 u = util.url(path.rstrip('/') + "/.hg") 122 u = util.url(path.rstrip('/') + "/.hg")
123 self.path, authinfo = u.authinfo() 123 self.path, authinfo = u.authinfo()
124 124
125 vfsclass = build_opener(ui, authinfo) 125 vfsclass = build_opener(ui, authinfo)
126 self.vfs = vfsclass(self.path) 126 self.vfs = vfsclass(self.path)
127 self.cachevfs = vfsclass(self.vfs.join('cache'))
127 self._phasedefaults = [] 128 self._phasedefaults = []
128 129
129 self.names = namespaces.namespaces() 130 self.names = namespaces.namespaces()
130 self.filtername = None 131 self.filtername = None
131 132