##// END OF EJS Templates
remotefilelog: acquire lock before writing requirements on clone...
remotefilelog: acquire lock before writing requirements on clone Performing a shallow clone in remotefilelog does not acquire lock. This leads to following warning when we try to write some requirements in store: ``` --- /home/gps/src/hg-committed/tests/test-remotefilelog-share.t +++ /home/gps/src/hg-committed/tests/test-remotefilelog-share.t#safe.err @@ -28,6 +28,7 @@ $ hgcloneshallow ssh://user@dummy/master source --noupdate -q + devel-warn: write with no lock: "requires" at: /home/gps/src/hg-committed/mercurial/scmutil.py:1505 (writerequires) $ hg share source dest updating working directory 1 files updated, 0 files merged, 0 files removed, 0 files unresolved ``` Let's lock before writing the requirements file. Another solution which I can think of is not warn about missing lock when writing to requires file in store. Differential Revision: https://phab.mercurial-scm.org/D8952

File last commit:

r43347:687b865b default
r46053:bddc4f2e default
Show More
cacheutil.py
22 lines | 822 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 = [b'branch2']
cachefiles += [b'branch2-%s' % f for f in repoview.filtertable]
cachefiles += [b'rbc-names-v1', b'rbc-revs-v1']
cachefiles += [b'tags2']
cachefiles += [b'tags2-%s' % f for f in repoview.filtertable]
cachefiles += [b'hgtagsfnodes1']
return cachefiles