Added support for 'pretxncommit', so that one can call the ACL hook at
authorElifarley Callado Coelho Cruz <elifarley@gmail.com>
Tue, 06 Apr 2010 22:15:43 -0300
changeset 10955 470a6ace7574
parent 10945 90f72f47cfc2
child 10956 a156ce543a5b
Added support for 'pretxncommit', so that one can call the ACL hook at pre-commit time too. This is useful because now it's possible to avoid violating ACL permissions much sooner, at commit time, instead of waiting for a PUSH to check if there were any invalid commits.
hgext/acl.py
--- a/hgext/acl.py	Mon Apr 19 21:47:23 2010 +0200
+++ b/hgext/acl.py	Tue Apr 06 22:15:43 2010 -0300
@@ -72,10 +72,11 @@
 
 
 def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
-    if hooktype != 'pretxnchangegroup':
+    if hooktype not in ['pretxnchangegroup', 'pretxncommit']:
         raise util.Abort(_('config error - hook type "%s" cannot stop '
-                           'incoming changesets') % hooktype)
-    if source not in ui.config('acl', 'sources', 'serve').split():
+                           'incoming changesets nor commits') % hooktype)
+    if (hooktype == 'pretxnchangegroup' and
+        source not in ui.config('acl', 'sources', 'serve').split()):
         ui.debug('acl: changes have source "%s" - skipping\n' % source)
         return