2010-11-03 32 views
3

J'essaie de refuser à tout le monde de valider l'accès à une branche en utilisant ACL sous Windows, mais je n'arrive pas à le comprendre. Selon la petite documentation que j'ai trouvé cela devrait fonctionner.Mercurial - bloque l'accès à une branche à l'aide de l'extension ACL sur Windows

Mon fichier hgrc:

[extensions] 
hgext.acl= 

[hooks] 
pretxncommit.acl = python:hgext.acl.hook 

[acl] 
sources = commit 

[acl.deny.branches] 
default = * 

Si pas tout le monde nient utiliser un accès à la branche par défaut? J'ai essayé et maintenant tous les commits, quelle que soit la branche donne:

error: pretxncommit.acl hook failed: config error - hook type "pretxncommit" can 
not stop incoming changesets 
transaction abort! 
rollback completed 
abort: config error - hook type "pretxncommit" cannot stop incoming changesets 

me conduit à penser que je mal configuré, mais il est à peu près exactement comment ils le font dans le AclExtension documentation.

+2

Votre 'hgrc' fonctionne comme prévu sur WinXP et Mercurial 1.7 (j'ai juste mis à jour!). Quelle version de Mercurial avez-vous? –

+0

@Niall C. J'étais sous 1.5.1, celui qui est venu avec TortoiseHg quand je l'ai installé il y a un moment. J'ai surclassé à 1,7 et ça a bien fonctionné. Ce n'était pas clair, j'avais besoin de mettre à niveau de la doc. Merci! – jfrobishow

Répondre

2

Voici le code correspondant de acl.py:

if hooktype not in ['pretxnchangegroup', 'pretxncommit']: 
    raise util.Abort(_('config error - hook type "%s" cannot stop ' 
         'incoming changesets nor commits') % hooktype) 

que je pense que les contrôles après la « .acl » de votre nom de crochet est retiré, mais peut-être dans votre version de Mercurial (quelle version?) Il n'est pas?

Essayez de changer votre section [hooks] à ceci:

[hooks] 
pretxncommit = python:hgext.acl.hook 

le .acl est seulement nécessaire lorsque vous avez plusieurs crochets du même type.

+0

Ceci est sous 1.5.1 (livré avec TortoiseHg), j'ai essayé de supprimer le .acl et toujours eu l'erreur. – jfrobishow

+0

Je viens de mettre à jour à 1.7 et cela a fonctionné. Les deux ont effectivement, avec et sans le .acl – jfrobishow