diff mercurial/localrepo.py @ 1721:801756d0ca84

add pretxncommit hook. hook allows check of changeset after create, but before transaction is committed. hook failure rolls transaction back. makes place for local policies like commit message must contain bug id or reviewer signoff. change also adds parent changeset ids to commit hook environment, because is cheap and useful.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 14 Feb 2006 17:13:18 -0800
parents 98072468ffde
children 56fb048b102c 0f1d2c75db5e
line wrap: on
line diff
--- a/mercurial/localrepo.py	Tue Feb 14 15:47:25 2006 -0800
+++ b/mercurial/localrepo.py	Tue Feb 14 17:13:18 2006 -0800
@@ -376,7 +376,11 @@
             self.ui.status(_("nothing changed\n"))
             return None
 
-        self.hook("precommit", throw=True)
+        xp1 = hex(p1)
+        if p2 == nullid: xp2 = ''
+        else: xp2 = hex(p2)
+
+        self.hook("precommit", throw=True, p1=xp1, p2=xp2)
 
         if not wlock:
             wlock = self.wlock()
@@ -462,13 +466,14 @@
 
         user = user or self.ui.username()
         n = self.changelog.add(mn, changed + remove, text, tr, p1, p2, user, date)
+        self.hook('pretxncommit', throw=True, node=hex(n), p1=xp1, p2=xp2)
         tr.close()
 
         self.dirstate.setparents(n)
         self.dirstate.update(new, "n")
         self.dirstate.forget(remove)
 
-        self.hook("commit", node=hex(n))
+        self.hook("commit", node=hex(n), p1=xp1, p2=xp2)
         return n
 
     def walk(self, node=None, files=[], match=util.always):