This is an archive of the discontinued Mercurial Phabricator instance.

remotefilelog: acquire lock before writing requirements on clone
ClosedPublic

Authored by pulkit on Aug 26 2020, 6:04 AM.

Details

Summary

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.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.