Mercurial > hg
changeset 45015:5797dbb630df
locks: expect repo lock, not wlock, when writing to .hg/strip-backup/
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.
Differential Revision: https://phab.mercurial-scm.org/D8666
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 25 Jun 2020 12:02:34 -0700 |
parents | 6118ad07b98d |
children | 752da6863e39 |
files | mercurial/localrepo.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Thu Jun 25 13:37:56 2020 -0700 +++ b/mercurial/localrepo.py Thu Jun 25 12:02:34 2020 -0700 @@ -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,