使用SVN和svnserve,是否可以将帐户限制为仅查看日志条目?
这对于集成例如依赖日志历史记录的统计发布工具非常有用,而无需让这些工具访问所有回购源代码。
目前不可能。
事实上,Subversion将根据对修订版更改的文件的基于路径的访问控制来限制日志请求返回的内容(mod_authz_svn用于httpd,并在配置authz db时内置到svnserve中)。
- 如果可以读取所有文件,则:
- 服务器返回修订版的所有详细信息
- 如果只能读取部分文件,则:
- 服务器只返回svn:author和svn:date修订属性,如果使用-v,则返回请求者可以访问的已更改路径的路径
- 如果无法读取任何文件,则:
- 服务器甚至没有在日志结果中提及修订
使用HTTPD,您应该能够限制客户端可以使用的方法,并关闭批量更新(SVNAllowBulkUpdates)。在关闭批量更新的情况下,只要他们不能执行GET,他们就无法访问文件的内容。然而,由于mod_dav_svn的实现方式存在其他内部问题,这是不可能的。svnserve没有任何类型的钩子来支持这样的东西。
这是一种需要在Subversion方面进行更改才能实现的事情。