hooks: invalidate the repo after the hooks stable
authorArseniy Alekseyev <aalekseyev@janestreet.com>
Thu, 23 Mar 2023 11:36:25 +0000
branchstable
changeset 50325 2761ce777fc4
parent 50324 e6532a7336d0
child 50326 f14864fffdca
hooks: invalidate the repo after the hooks Since the hooks may have changed the repository content it seems safer to invalidate it. The invalidation is "soft", the data are kept around and few work will be needed to restore them if nothing actually changed.
mercurial/hook.py
--- a/mercurial/hook.py	Thu Mar 23 21:18:54 2023 +0000
+++ b/mercurial/hook.py	Thu Mar 23 11:36:25 2023 +0000
@@ -191,6 +191,11 @@
         cwd = encoding.getcwd()
     r = ui.system(cmd, environ=env, cwd=cwd, blockedtag=b'exthook-%s' % (name,))
 
+    if repo is not None and repo.currentwlock() is None:
+        repo.invalidatedirstate()
+    if repo is not None and repo.currentlock() is None:
+        repo.invalidate()
+
     duration = util.timer() - starttime
     ui.log(
         b'exthook',