在公司环境中配置 VisualSVN Server 的时候遇到了一个情况, 就是希望 update 的时候无需输入密码, 而仅仅在提交的时候需要输入密码. 简单的说就是希望支持匿名访问. 但是竟然没有找到相应的设置. 起初以为是把相应 Repository 中的 Everyone 设置为 Read/Write 即可, 结果发现不可行, 仍然会在 update 的时候要求键入帐号密码, 非常的麻烦. 经过百度和 Google, 将最终可行的方案总结如下:

Step 1: 找到 VisualSVN Server 的安装目录, 例如 C:\Program Files\VisualSVN Server, 找到其中的 \conf\httpd.conf, 编辑它, 找到这一段:
(注: 此处好像也能修改httpd-custom.conf, 未验证, 可参考最下方参考链接)

<Location /svn/>
  ...
  require valid-user
</Location>

将其修改为:

<Location /svn/>
  ...
  Satisfy Any
  require valid-user
</Location>

也就是添加 Satisfy Any 字段.

Step 2: 通过 VisualSVN Server Manager, 找到对应的 Repository, 将该仓库的 Properties 中的 Everyone 访问权限设置为 Read Only, 然后其他人的权限仍然保持以前的设置即可.

Step 3: 重启 VisualSVN Server 服务. 此时再次使用 update 功能将不再需要输入帐号密码. 而 commit 的时候仍然会需要密码.

参考链接:

2015-05-16 22:2915