[Request] [+ ] D8666: locks: expect repo lock, not wlock, when writing to .hg/strip-backup/

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Thu Jun 25 19:24:34 UTC 2020


martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  There should be no need for a working copy lock when creating (or
  reading) bundles in `.hg/strip-backup/` since they don't affect the
  working copy.
  
  I noticed this because we have an extension that tries to strip some
  revisions while holding only a repo lock. I guess we have no such
  cases in core, which seems a bit surprising. Maybe we always take a
  wlock at a higher level so the working copy is not updated while the
  target commit is being stripped.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8666

AFFECTED FILES
  mercurial/localrepo.py

CHANGE DETAILS

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1235,8 +1235,9 @@
             if path.startswith(b'cache/'):
                 msg = b'accessing cache with vfs instead of cachevfs: "%s"'
                 repo.ui.develwarn(msg % path, stacklevel=3, config=b"cache-vfs")
-            if path.startswith(b'journal.') or path.startswith(b'undo.'):
-                # journal is covered by 'lock'
+            # path prefixes covered by 'lock'
+            vfs_path_prefixes = (b'journal.', b'undo.', b'strip-backup/')
+            if any(path.startswith(prefix) for prefix in vfs_path_prefixes):
                 if repo._currentlock(repo._lockref) is None:
                     repo.ui.develwarn(
                         b'write with no lock: "%s"' % path,



To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200625/da3bfb7e/attachment-0001.html>


More information about the Mercurial-patches mailing list