cas*_*der 5 linux http svn web-server svnserve
SVN 注释功能非常强大,可以快速确定谁在特定代码行上追踪特定功能。如果用户通过 http 访问 SVN,则此功能会稍微受限(但仍然有用)。没有凭据以这种方式交换,因此注释不显示由使用 http 提交更改的开发人员修改的行的名称。
问题是,开发人员有没有办法将某种凭据传递给服务器上的 SVN 以唯一标识他们的提交?在此环境中仅需要存在 ID。svn+ssh 和文件协议等替代方法不可用。最后,该服务器位于内部 LAN 上,而不是公共 LAN。也欢迎 https 提示。
SVN 服务器运行在带有 Apache2 的 Linux 上。
由于您通过 Apache 运行 SVN,因此您可以利用 Apache 的内置身份验证方法来控制对存储库的访问/跟踪更改。下面的示例将使用 htaccess 样式的设置:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
Run Code Online (Sandbox Code Playgroud)
您可以在 htaccess 文件或 VirtualHost 配置文件中进行配置。
在 apache 配置中:
<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
Run Code Online (Sandbox Code Playgroud)
和 /etc/apache2/svn_authz 可以包含对谁可以访问什么的细粒度管理:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
Run Code Online (Sandbox Code Playgroud)
如果您手头有 ldap/活动目录服务器,您可以使用它代替 AuthUserFile 进行 apache 身份验证。