Subversion - 是否可以禁用所有提交并使存储库只读?

zig*_*ggy 6 svn build-process configuration-management

我有一个subversion存储库,它是另一个远程存储库的镜像.我每周都使用svnsync镜像存储库.镜像存储库(本地副本)仅用于备份.

我想将镜像存储库保持为READ-ONLY,即没有人应该能够对此存储库提交任何更改,但是它们可以使用它来读取源文件,因为它比远程存储库更快.

我浏览了一下Google,看起来Hook可能是最好的选择.唯一的问题是我在Google上看到的所有示例都是基于Unix的,我无法找到适合Windows的示例,因为镜像存储库在Windows Server上运行.

有任何想法吗?

Dav*_* W. 7

首先,您使用的是结帐URL http://还是svn://结帐URL?

如果您正在使用svn://,则可以svnserve.conf通过简单地使用空传递文件来配置存储库中的文件以删除授权访问.匿名访问默认为"只读",因此只要您没有更改svnserve.conf文件中的设置,就应该没问题.或者,您可以关闭匿名访问,并将授权访问权限更改为read-only.

但是,如果您正在使用http://,则必须在Subversion服务器上配置Apache httpd配置,以禁止写访问.

这变得更加棘手,因为有多种方法可以设置Apache httpd身份验证,并且根据系统的不同,Apache httpd可以存储在多个位置.

另一种可能性是使用预提交挂钩来关闭对存储库的所有读写访问.

顺便说一句,老svnsync的命令的使用要求,不仅SVN读写访问提交它同步变化,而且还必须具备的pre-revprop-change钩子集,所以svnsync的命令也可以修改svn:log,svn:datesvn:author与原始存储库匹配的属性.这意味着,如果您设法将存储库设置为只读,则可能会中断svnsync.您需要了解svnsync工作原理以及是否仍然如此.我的预提交钩子也可以解决这个问题.


mac*_*mac 6

为什么不在svnserve.conf中配置anon-access = read和auth-access = read?