diff mercurial/localrepo.py @ 16680:d0e419b0f7de stable

tag: run commit hook when lock is released (issue3344)
author Mads Kiilerich <mads@kiilerich.com>
date Sat, 12 May 2012 20:06:02 +0200
parents 2950d186a927
children d947e1da1259 9a99224a6409
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sat May 12 20:25:33 2012 +0200
+++ b/mercurial/localrepo.py	Sat May 12 20:06:02 2012 +0200
@@ -920,6 +920,8 @@
         l = self._lockref and self._lockref()
         if l:
             l.postrelease.append(callback)
+        else:
+            callback()
 
     def lock(self, wait=True):
         '''Lock the repository store (.hg/store) and return a weak reference
@@ -1209,7 +1211,9 @@
         finally:
             wlock.release()
 
-        self.hook("commit", node=hex(ret), parent1=hookp1, parent2=hookp2)
+        def commithook(node=hex(ret), parent1=hookp1, parent2=hookp2):
+            self.hook("commit", node=node, parent1=parent1, parent2=parent2)
+        self._afterlock(commithook)
         return ret
 
     def commitctx(self, ctx, error=False):