通过http为多个用户设置SVN服务器

SVN注释function非常强大,可以快速查找特定代码行上的特定function。 如果用户通过http访问SVN,这个function会稍微受到限制(但是仍然有用)。 没有以这种方式交换证书,所以注释显示没有由使用http提交更改的开发人员修改的行的名称。

问题是,有没有办法让开发人员将某种types的证书传递给服务器上的SVN来唯一标识它们的提交? 这仅仅是在这种环境下所需要的ID的存在。 其他方法如svn + ssh和文件协议不可用。 最后,这个服务器是在一个内部局域网上,而不是公共的。 https提示也欢迎。

SVN服务器在Apache2上运行在Linux上。

在Apacheconfiguration:

<Location /svn> DAV svn SVNPath /mnt/big/svn AuthType Basic AuthName "SVN Server" AuthUserFile /etc/apache2/svn.pass Require valid-user AuthzSVNAccessFile /etc/apache2/svn_authz 

和/ etc / apache2 / svn_authz可以包含谁可以访问什么的精细pipe理:

 [groups] ops=user1,user2 it=user2,user3 [/] * = rw [/ops] * = @ops=rw [/ro] * = @ops = r @it = r user4 = rw 

如果您手头上有ldap / active目录服务器,则可以使用它来代替AuthUserFile进行apachevalidation。

由于您是通过Apache运行SVN,所以您可以利用Apache的内置身份validation方法来控制对存储库的访问/跟踪更改。 下面的示例将使用htaccess样式的设置:

 AuthType Basic AuthName "Subversion Repository" AuthUserFile /path/to/user/list Require valid-user 

您可以在htaccess文件或VirtualHostconfiguration文件中configuration它。

简短的回答: mod_authz_svn

你可以在我的幻灯片中看到一些关于apache + svn + mod_autz_svn的内容,以及http://upperalbert.it/download/misc/PHPCon09_SVN_advanced.pdf

这个答案假定您的开发人员使用Windows,并且您有一个Active Directory域控制器。

按照这篇文章,您可以将Linux svn服务器join到域中。

从那里,你configurationapache使用Kerberos对AD进行身份validation。 首先安装mod_auth_kerb ,然后将apache2连接到Kerberos进行身份validation。 请参阅Microsoft的文档 。 如果您完全担心客户端和服务器之间的安全性,请确保实施SSL。

完成后,用户可以使用他们的Windows密码login,活动将分配给他们的用户。

不幸的是,由于我不在办公室,无法访问我们的svn服务器,所以我现在无法获得具体的configuration细节。