Windows 上的 svnserve 的 authz 路径语法是什么?

What is svnserve's authz's path syntax on Windows?

背景

我已经 运行 svnserve 版本 1.8.17 配置管理软件在我的 windows 内部网上使用多年,现在有 10 台电脑。 PC 使用 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

以下摘自 Subversion documentation page xxii 的文字表明我的路径语法是正确的:

For consistency, the examples in this book assume that the reader is using a Unix-like operating system and is relatively comfortable with Unix and command-line interfaces. That said, the svn program also runs on nonUnix platforms such as Microsoft Windows. With a few minor exceptions, such as the use of backward slashes () instead of forward slashes (/) for path separators, the input to and output from this tool when run on Windows are identical to that of its Unix counterpart.

虽然我无法找出那些 "minor exceptions" 是什么。

问题

还有其他有效的语法吗?还是这些年来这真的是一个错误?

请阅读 SVNBook | Path-based authoriztion 并考虑本章中给出的示例。

# causes 'Invalid authz configuration' when these lines are included
[C:\aaa\bbb\ccc\smith]

authz 需要存储库 中的路径。它是 OS 独立的,与文件系统上的路径无关。因此,该行应如下所示

[REPOSITORYNAME:/MyProject/smith]

重要提示:Subversion 的路径区分大小写。因此,您应该确保 authz 文件中的路径是正确的。

更新

C:\svn\Hiveware\ 处的目录是您的存储库。 C:\Hiveware\bbb\ccc\projname 是从存储库中检出的工作副本的路径 - 它与问题无关。

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

假设其他一切都正确,authz-db 文件中的行应如下所示

[Hiveware:/bbb/ccc/projname]

注意正斜杠而不是反斜杠,并且在 : 之后省略了存储库的名称。该名称已在该行中指定,您无需再次重复。