locking: hold the wlock for the full duration of the "keyword demo"
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sat, 04 Feb 2023 11:46:57 +0100
changeset 50065 115510658219
parent 50064 e859f440daa9
child 50066 f93bccadcf42
locking: hold the wlock for the full duration of the "keyword demo" The risk of racing the demo is low, since it seems to create its own repository on the fly. However it is clearer and more consistent.
hgext/keyword.py
--- a/hgext/keyword.py	Sun Feb 05 16:54:26 2023 +0100
+++ b/hgext/keyword.py	Sat Feb 04 11:46:57 2023 +0100
@@ -531,17 +531,17 @@
     demoitems(b'keywordmaps', kwmaps.items())
     keywords = b'$' + b'$\n$'.join(sorted(kwmaps.keys())) + b'$\n'
     repo.wvfs.write(fn, keywords)
-    repo[None].add([fn])
-    ui.note(_(b'\nkeywords written to %s:\n') % fn)
-    ui.note(keywords)
     with repo.wlock():
+        repo[None].add([fn])
+        ui.note(_(b'\nkeywords written to %s:\n') % fn)
+        ui.note(keywords)
         repo.dirstate.setbranch(b'demobranch')
-    for name, cmd in ui.configitems(b'hooks'):
-        if name.split(b'.', 1)[0].find(b'commit') > -1:
-            repo.ui.setconfig(b'hooks', name, b'', b'keyword')
-    msg = _(b'hg keyword configuration and expansion example')
-    ui.note((b"hg ci -m '%s'\n" % msg))
-    repo.commit(text=msg)
+        for name, cmd in ui.configitems(b'hooks'):
+            if name.split(b'.', 1)[0].find(b'commit') > -1:
+                repo.ui.setconfig(b'hooks', name, b'', b'keyword')
+        msg = _(b'hg keyword configuration and expansion example')
+        ui.note((b"hg ci -m '%s'\n" % msg))
+        repo.commit(text=msg)
     ui.status(_(b'\n\tkeywords expanded\n'))
     ui.write(repo.wread(fn))
     repo.wvfs.rmtree(repo.root)