1

背景

多年来,我一直在我的 Windows 内部网上运行svnserve版本 1.8.17 配置管理软件,现在有 10 台 PC。PC 使用 TortoiseSVN 作为客户端。现在我需要添加另一个只能访问子文件夹的用户。这意味着更改authz文件。

问题

当我添加authz文件的路径时,我收到错误Invalid authz configuration。这是我经过清理的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 文档页面 xxii,说明我的路径语法是正确的:

为保持一致性,本书中的示例假定读者使用的是类 Unix 操作系统,并且对 Unix 和命令行界面比较熟悉。也就是说,svn 程序也可以在 Microsoft Windows 等非 Unix 平台上运行。除了一些小例外,例如使用反斜杠 () 而不是正斜杠 (/) 作为路径分隔符,此工具在 Windows 上运行时的输入和输出与 Unix 对应的相同。

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

问题

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

4

1 回答 1

1

请阅读SVNBook | 基于路径的授权并考虑本章给出的示例。

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

存储库中的authz期望路径。它独立于操作系统,与文件系统上的路径无关。因此,该行应如下所示

[REPOSITORYNAME:/MyProject/smith]

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

更新

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

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

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

[Hiveware:/bbb/ccc/projname]

注意正斜杠而不是反斜杠,并且在:. 该名称已在该行中指定,您无需再次重复。

于 2020-05-13T14:07:38.557 回答