添加分支时出现基于SVN路径的授权错误

添加分支时出现基于SVN路径的授权错误,svn,repository,authorization,Svn,Repository,Authorization,我已在SVN服务器上修改了authz文件,以启用基于路径的授权。我在为存储库中的分支指定授权设置时遇到了一个问题。以下是我的authz文件的外观: [aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] firmware_team = eddie,jackson contractors = frank,max # Provid

我已在SVN服务器上修改了authz文件,以启用基于路径的授权。我在为存储库中的分支指定授权设置时遇到了一个问题。以下是我的authz文件的外观:

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
firmware_team = eddie,jackson
contractors = frank,max

# Provide default access here for entire repository
[/]
* =
@firmware_team = rw

# Define access here for the myrepo repository
[myrepo:/]
@contractors = r

[myrepo:/branches/contractor_branch/]
@contractors = rw
因此,默认情况下,我为每个人提供对我的存储库的只读访问权限,同时也为
固件团队
组提供默认读/写访问权限

这里的问题是,当我添加以下行以启用存储库特定分支的授权时,固件团队组将被禁止提交到
myrepo
中继:

[myrepo:/branches/contractor_branch/]
@contractors = rw
如果我这样注释这些行:

# [myrepo:/branches/contractor_branch/]
# @contractors = rw
然后,允许固件团队再次访问中继。我不知道为什么会发生这种情况,有人能告诉我吗

在SVN的书中,我发现有一件事很有趣,那就是:

组成员的权限只能扩展到 组已具有的权限。限制属于 组的权限不可能小于其组的权限


这让我想到,如果我给一个组对整个回购协议的读/写访问权,那么简单地向该回购协议的分支添加特定授权不应该导致一个组失去对该回购协议主干的访问权。

我发现了我遇到的问题。指定基于路径的存储库授权时,必须省略repo末尾的斜杠。例如:

这:

应该这样设置:

[myrepo:/branches/contractor_branch]
@contractors = rw
奇怪的是,这只适用于存储库根以外的任何对象。因此:

[myrepo:/]
@contractors = r
仍然有效,因为它指向根

[myrepo:/]
@contractors = r