有谁知道是否有任何API公开来管理存储库权限 夏普SVN?例如,以编程方式在每个存储库的基础上添加读取和写入权限。

或者,对于使用其他 SVN API 管理权限还有其他想法吗?最坏的情况是手动管理 svnaccessfile 的内容,但这是最后的手段。谢谢。

有帮助吗?

解决方案

看起来是因为 SharpSvn 只是 Subversion 命令行工具的 .NET API 包装器,并且不包含管理权限的机制,所以这是不可行的(请参阅 这里)。不同的 Subversion 发行版以不同的方式管理权限,因此在 SharpSvn 之外控制权限的方法会有所不同。

Visual SVN 服务器利用存储库根目录中的 authz-windows 文件来管理基于 AD 的权限。它以纯文本形式存储用户的 SID 和存储库名称,因此我通过直接管理此文件的内容来解决 API 问题。不像我希望的那么优雅,但最终结果是一样的。

其他提示

正如 @TroyHunt 所发布的,不可能使用 SharpSVN 来管理 Subversion 访问规则。事实上,每个使用 mod_authz_svn 的 Subversion+Apache 服务器都可以配置为使用多个授权列表。它们可以是每个存储库的 authz 文件、整个服务器实例的 authz 文件,甚至是存储库内的 authz 文件(从 Subversion 1.8 开始提供)。因此,没有适合所有 Subversion 安装的访问规则管理标准方法。但是,您始终可以专门为 Subversion 服务器安装编写自己的脚本,因为 Subversion authz 文件的格式非常简单.

最初的答案暗示您正在使用 VisualSVN Server。在这种情况下,我有个好消息要告诉您,因为 VisualSVN Server 3.4 引入了许多用于服务器和存储库管理的 PowerShell cmdlet。在最新的 3.5 版本中,实际上有 29 个 cmdlet,其中用于管理访问规则的 cmdlet:

有关 cmdlet 和使用示例的更多信息,请阅读文章 KB88:VisualSVN 服务器 PowerShell Cmdlet 参考.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top