什么是SVN服务';s authz';Windows上的路径语法?
背景 多年来,我一直在windows intranet上运行svnserve1.8.17版配置管理软件,现在有10台电脑。这些电脑使用TortoiseSVN作为客户端。现在我需要添加另一个只能访问子文件夹的用户。这意味着更改authz文件 问题 当我向authz文件添加路径时,我得到了错误的无效authz配置。这是我经过消毒的authz文件:什么是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 '
[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]。我测试了两种方法,但都失败了。请查看更新的答案