Mercurial - 在Windows上使用ACL扩展阻止对分支的访问

时间:2010-11-03 19:12:49

标签: windows security mercurial branch acl

我试图拒绝所有人在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中完成的原因。

1 个答案:

答案 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