mercurial/hg.py
changeset 32493 3c8a71a8df11
parent 32492 963de566de2f
child 32494 53a67ba9fb44
--- a/mercurial/hg.py	Thu May 25 11:55:00 2017 +0200
+++ b/mercurial/hg.py	Thu May 25 11:59:07 2017 +0200
@@ -420,6 +420,14 @@
             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.extend('branch2-%s' % f for f in repoview.filtertable)
+    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.
@@ -578,11 +586,8 @@
                 util.copyfile(srcbookmarks, dstbookmarks)
 
             dstcachedir = os.path.join(destpath, 'cache')
-            # In local clones we're copying all nodes, not just served
-            # ones. Therefore copy all branch caches over.
-            _copycache(srcrepo, dstcachedir, 'branch2')
-            for cachename in repoview.filtertable:
-                _copycache(srcrepo, dstcachedir, 'branch2-%s' % cachename)
+            for cache in _cachetocopy(srcrepo):
+                _copycache(srcrepo, dstcachedir, cache)
 
             # we need to re-init the repo after manually copying the data
             # into it