hooks: add a prewlock and a prelock hooks stable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Tue, 11 Jun 2024 03:03:47 +0200
branchstable
changeset 51635 fcc149f3fdcb
parent 51634 3b69324d9535
child 51636 553eb132366f
hooks: add a prewlock and a prelock hooks This is useful for testing.
mercurial/helptext/config.txt
mercurial/localrepo.py
--- a/mercurial/helptext/config.txt	Tue Jun 11 11:14:13 2024 +0200
+++ b/mercurial/helptext/config.txt	Tue Jun 11 03:03:47 2024 +0200
@@ -1438,6 +1438,12 @@
   parent is in ``$HG_PARENT2``. If the update succeeded, ``$HG_ERROR=0``. If the
   update failed (e.g. because conflicts were not resolved), ``$HG_ERROR=1``.
 
+``prelock``
+  run before the store lock is taken, mostly used for test and debug.
+
+``prewlock``
+  run before the working copy lock is taken, mostly used for test and debug.
+
 .. note::
 
    It is generally better to use standard hooks rather than the
--- a/mercurial/localrepo.py	Tue Jun 11 11:14:13 2024 +0200
+++ b/mercurial/localrepo.py	Tue Jun 11 03:03:47 2024 +0200
@@ -3115,6 +3115,7 @@
             l.lock()
             return l
 
+        self.hook(b'prelock', throw=True)
         l = self._lock(
             vfs=self.svfs,
             lockname=b"lock",
@@ -3139,6 +3140,7 @@
             l.lock()
             return l
 
+        self.hook(b'prewlock', throw=True)
         # We do not need to check for non-waiting lock acquisition.  Such
         # acquisition would not cause dead-lock as they would just fail.
         if wait and (