##// END OF EJS Templates
localrepo: do not cache auditor/nofsauditor which would make reference cycle...
localrepo: do not cache auditor/nofsauditor which would make reference cycle Before, self.auditor and self.nofsauditor held self through self._checknested, and the following code couldn't free a repo by ref-counting. def main(): repo = localrepo.localrepository(uimod.ui(), '../testrepos/hello') main() With this change, the cache of the nofsauditor is limited to a single match session. I think that's okay as the nofsauditor doesn't do any filesystem access. Alternatively, maybe we can remove the callback from nofsauditor since it isn't used unless realfs=True, but I have no idea whether it is a bug or not.

File last commit:

r35784:72fdd99e default
r39348:9198e41d default
Show More
cacheutil.py
21 lines | 814 B | text/x-python | PythonLexer
# scmutil.py - Mercurial core utility functions
#
# Copyright Matt Mackall <mpm@selenic.com> and other
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from . import repoview
def cachetocopy(srcrepo):
"""return the list of cache file valuable to copy during a clone"""
# In local clones we're copying all nodes, not just served
# ones. Therefore copy all branch caches over.
cachefiles = ['branch2']
cachefiles += ['branch2-%s' % f for f in repoview.filtertable]
cachefiles += ['rbc-names-v1', 'rbc-revs-v1']
cachefiles += ['tags2']
cachefiles += ['tags2-%s' % f for f in repoview.filtertable]
cachefiles += ['hgtagsfnodes1']
return cachefiles