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细节。