SharpSVN是否具有管理存储库权限的API

时间:2009-07-15 07:22:16

标签: sharpsvn svn

有谁知道在SharpSVN中是否有任何API可以管理存储库权限?例如,以每个存储库为基础以编程方式添加读写权限。

或者,有关使用其他SVN API管理权限的任何其他想法?最糟糕的情况是手动管理svnaccessfile的内容,但这是最后的手段。感谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

正如@TroyHunt发布的那样,无法使用SharpSVN来管理Subversion访问规则。实际上,每个使用mod_authz_svn的Subversion + Apache服务器都可以配置为使用多个授权列表。它们可以是每个存储库authz文件,整个服务器实例的authz文件,甚至是in-repo authz文件(从Subversion 1.8开始可用)。因此,没有适合所有Subversion安装的访问规则管理的标准方法。但是,您始终可以专门为Subversion服务器安装编写自己的脚本,因为Subversion authz files have a very simple format

原始答案暗示您使用的是VisualSVN Server。在这种情况下,我有一个好消息,因为VisualSVN Server 3.4为服务器和repos管理引入了许多PowerShell cmdlet。在最新的3.5版本中,实际上有29个cmdlet和cmdlet来管理访问规则:

有关cmdlet和用法示例的详细信息,请阅读文章KB88: VisualSVN Server PowerShell Cmdlet Reference