我试图拒绝所有人在Windows上使用ACL提交对分支的访问权限,但似乎无法弄明白。根据我发现这应该有用的小文档。
我的hgrc文件:
[extensions]
hgext.acl=
[hooks]
pretxncommit.acl = python:hgext.acl.hook
[acl]
sources = commit
[acl.deny.branches]
default = *
这不应该拒绝每个人都提交默认分支的访问权限吗?我试过,现在每次提交,无论分支给出:
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
导致我认为我将其配置错误,但这正是他们在AclExtension documentation中完成的原因。
答案 0 :(得分:2)
以下是来自acl.py的相关代码:
if hooktype not in ['pretxnchangegroup', 'pretxncommit']:
raise util.Abort(_('config error - hook type "%s" cannot stop '
'incoming changesets nor commits') % hooktype)
我认为从你的钩子名称中删除“.acl
”之后的检查会被删除,但也许在您的mercurial版本(什么版本?)中它不是?
尝试将[hooks]
部分更改为:
[hooks]
pretxncommit = python:hgext.acl.hook
只有当你有多个相同类型的钩子时才需要.acl
。