Patchwork [13,of,14,V3] caches: make 'cachetocopy' available in scmutil

login
register
mail settings
Submitter Boris Feld
Date Jan. 19, 2018, 11:47 p.m.
Message ID <9c2889f5050bea9d33be.1516405638@FB>
Download mbox | patch
Permalink /patch/26997/
State Accepted
Headers show

Comments

Boris Feld - Jan. 19, 2018, 11:47 p.m.
# HG changeset patch
# User Boris Feld <boris.feld@octobus.net>
# Date 1516207609 -3600
#      Wed Jan 17 17:46:49 2018 +0100
# Node ID 9c2889f5050bea9d33be5f501eaf1ecf2d9617d3
# Parent  789f14aef1ca0b39e61a47d8989c18cdc6015b53
# EXP-Topic b2-stream
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 9c2889f5050b
caches: make 'cachetocopy' available in scmutil

For more code to use this information, we need it to be more publicly available.

Patch

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 <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
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