什么是SVN服务';s authz';Windows上的路径语法?

什么是SVN服务';s authz';Windows上的路径语法?,svn,svnserve,authz,Svn,Svnserve,Authz,背景 多年来,我一直在windows intranet上运行svnserve1.8.17版配置管理软件,现在有10台电脑。这些电脑使用TortoiseSVN作为客户端。现在我需要添加另一个只能访问子文件夹的用户。这意味着更改authz文件 问题 当我向authz文件添加路径时,我得到了错误的无效authz配置。这是我经过消毒的authz文件: [groups] mygroup = rtischer othergroup = smith [/] @mygroup = rw # causes '

背景

多年来,我一直在windows intranet上运行svnserve1.8.17版配置管理软件,现在有10台电脑。这些电脑使用TortoiseSVN作为客户端。现在我需要添加另一个只能访问子文件夹的用户。这意味着更改authz文件

问题

当我向authz文件添加路径时,我得到了错误的无效authz配置。这是我经过消毒的authz文件:

[groups]
mygroup = rtischer
othergroup = smith

[/]
@mygroup = rw

# causes 'Invalid authz configuration' when these lines are included
[Hiveware:\Hiveware\bbb\ccc\projname]
@othergroup = rw
以下是我的消毒路径:

C:\svn\Hiveware\conf\authz
C:\svn\Hiveware\db
C:\Hiveware\bbb\ccc\projname
以下文字取自,说明我的路径语法正确:

为了保持一致性,本书中的示例假设读者 使用类似Unix的操作系统,并且对 Unix和命令行界面。也就是说,svn程序也可以运行 在非统一平台(如Microsoft Windows)上。有一些小问题 异常,例如使用向后斜杠()而不是向前斜杠 斜杠(/)用于路径分隔符,此分隔符的输入和输出 在Windows上运行的工具与其Unix上运行的工具相同 对应的

但我无法找出那些“小例外”是什么

问题

还有其他语法可以使用吗?这几年真的是一个bug吗?< /P> < P>请阅读并考虑本章中给出的例子。

# causes 'Invalid authz configuration' when these lines are included
[C:\aaa\bbb\ccc\smith]
authz
需要存储库中的路径。它独立于操作系统,与文件系统上的路径无关。因此,该行应如下所示

[REPOSITORYNAME:/MyProject/smith]
[Hiveware:/bbb/ccc/projname]
重要提示:Subversion路径区分大小写。因此,您应该确保
authz
文件中的路径是正确的

更新 位于
C:\svn\Hiveware\
的目录是您的存储库
C:\Hiveware\bbb\ccc\projname
是从存储库签出的工作副本的路径-它与问题无关

使用
svnserve
时,authz文件的路径在
svnserve.conf
中指定为
authz db
指令的值。请确保路径正确。启动
svnserve
时,还应确保正确指定了存储库根
-r
。在您的情况下,必须指向
C:\svn

假设其他所有内容都正确,则
authzdb
文件中的行应如下所示

[REPOSITORYNAME:/MyProject/smith]
[Hiveware:/bbb/ccc/projname]

请注意,前斜杠而不是后斜杠,存储库的名称在
之后被省略。该名称已在行中指定,您无需再次重复。

我只有一个存储库,因此路径应为:[/aaa/bbb/ccc/smith]。已检查资本化。但当我执行repo浏览器命令时,我仍然无法获得授权。无论该命令是从aaa、smith还是在smith中的文件上执行,都会出现相同的错误。但至少authz文件不再无效。即使只有一个存储库,您也需要将存储库的名称指定为
[REPOSITORYNAME:
,除非您使用每个存储库的authz文件。检查服务器日志以获取其他提示。添加存储库名称会使路径变为:[aaa:/aaa/bbb/ccc/smith]。此语法有效。不幸的是,smith现在拥有对所有文件的rw访问权限,因此路径肯定仍有问题。路径是否从基后开始?@rtischer8277在第一个斜杠后删除aaaa。这是存储库的名称,而不是此存储库中的路径。路径现在为[aaa:/bbb/ccc/smith].Authorization在树上下都失败了。我在哪里可以找到您上面提到的Windows上的服务器日志?请注意,尽管@barhep提供了很好的帮助,但我从未让它工作过。他的回答仍然有效,尽管他更正并精确地定义了Windows路径的语法。这让我得出结论,存在一个错误windows平台的SVN服务中存在错误。请注意,您没有向我们显示您的
authz
文件的内容。只有一些
aaa bbb ccc
示例。我更新了问题部分以准确反映问题(尽管已清理)我的authz文件。我显示了我的SVN服务PC上的路径。我怀疑根文件夹Hiveware是否应该在冒号之后重复(即,[Hiveware:\bbb\ccc\projname]。我测试了两种方法,但都失败了。请查看更新的答案