# HG changeset patch # User Boris Feld # Date 2018-01-17 16:46:49 # Node ID 72fdd99eb5265e4bf5c3af961eb8288d676e7946 # Parent 56c30b31afbe65eded2b31c09be79751727f466a caches: make 'cachetocopy' available in scmutil For more code to use this information, we need it to be more publicly available. diff --git a/mercurial/cacheutil.py b/mercurial/cacheutil.py new file mode 100644 --- /dev/null +++ b/mercurial/cacheutil.py @@ -0,0 +1,21 @@ +# scmutil.py - Mercurial core utility functions +# +# Copyright Matt Mackall 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 diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -21,6 +21,7 @@ from .node import ( from . import ( bookmarks, bundlerepo, + cacheutil, cmdutil, destutil, discovery, @@ -34,7 +35,6 @@ from . import ( merge as mergemod, node, phases, - repoview, scmutil, sshpeer, statichttprepo, @@ -459,18 +459,6 @@ def _copycache(srcrepo, dstcachedir, fna os.mkdir(dstcachedir) util.copyfile(srcbranchcache, dstbranchcache) -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 - def clone(ui, peeropts, source, dest=None, pull=False, rev=None, update=True, stream=False, branch=None, shareopts=None): """Make a copy of an existing repository. @@ -629,7 +617,7 @@ def clone(ui, peeropts, source, dest=Non util.copyfile(srcbookmarks, dstbookmarks) dstcachedir = os.path.join(destpath, 'cache') - for cache in _cachetocopy(srcrepo): + for cache in cacheutil.cachetocopy(srcrepo): _copycache(srcrepo, dstcachedir, cache) # we need to re-init the repo after manually copying the data