SVN 注释功能非常强大,它可以快速确定在特定代码行中跟踪特定功能的人员。如果用户通过 http 访问 SVN,此功能会稍微受限(但仍然有用)。没有以这种方式交换凭据,因此注释没有显示由使用 http 提交更改的开发人员修改的行的名称。
问题是,开发人员有没有办法将某种凭据传递给服务器上的 SVN 以唯一标识他们的提交?在此环境中需要的只是 ID 的存在。svn+ssh 和文件协议等替代方法不可用。最后,此服务器位于内部 LAN 上,而不是公共的。也欢迎 https 的提示。
SVN 服务器在带有 Apache2 的 Linux 上运行。
由于您通过 Apache 运行 SVN,因此您可以利用 Apache 的内置身份验证方法来控制对存储库的访问/跟踪更改。下面的示例将使用 htaccess 样式的设置:
您可以在 htaccess 文件或 VirtualHost 配置文件中进行配置。
在 Apache 配置中:
并且 /etc/apache2/svn_authz 可以包含对谁可以访问什么的精细管理:
如果您手头有 ldap / 活动目录服务器,则可以使用它代替 AuthUserFile 进行 apache 身份验证。
简短的回答:
mod_authz_svn
您可以了解一些关于 apache + svn + mod_autz_svn 的信息以及我提交给 09 年国际 PHP 会议的幻灯片中的更多内容,网址为http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
此答案假定您的开发人员使用 Windows 并且您有一个 Active Directory 域控制器。
您可以按照本文将 Linux svn 服务器加入域。
从那里,您将 apache 配置为使用 Kerberos 对 AD 进行身份验证。首先安装mod_auth_kerb,然后将 apache2 连接到 kerberos 进行身份验证。请参阅 Microsoft 的文档。如果您完全担心客户端和服务器之间的安全性,请确保实施 SSL。
完成后,用户可以使用他们的 Windows 密码登录,并且活动将分配给他们的用户。
不幸的是,由于我不在办公室并且无法访问我们的 svn 服务器,因此我现在无法为您提供具体的配置详细信息。