如何冻结整个SVN存储库以使其成为只读

如何冻结整个SVN存储库以使其成为只读,svn,Svn,我找不到确切问题的答案。我们迁移到另一个源代码管理系统,希望保留整个存储库的只读快照。任何人都不能在任何地方提交任何更改。有办法吗?只需更新您的 您可以创建一个钩子来执行此操作: repository/hooks/pre-commit #!/bin/sh echo "No more commit here - this is an archive branch" 1>&2 exit 1 请注意,日志消息必须重定向到/dev/stderr(这是1>&2的含义)。或对整个服务器的访问

我找不到确切问题的答案。我们迁移到另一个源代码管理系统,希望保留整个存储库的只读快照。任何人都不能在任何地方提交任何更改。有办法吗?

只需更新您的


您可以创建一个钩子来执行此操作:

repository/hooks/pre-commit

#!/bin/sh
echo "No more commit here - this is an archive branch" 1>&2
exit 1

请注意,日志消息必须重定向到/dev/stderr(这是1>&2的含义)。

或对整个服务器的访问修改svnserve.conf联机身份验证访问=无|读|写,
然后重新启动服务器。

从命令行,您还可以使用
svnadmin freeze
在运行另一个进程(例如,在备份存储库时)时冻结对存储库的写入访问。

@nvl为什么会在superuser上?源代码管理主要是一个程序员工具,而不是普通计算机用户的工具…@内森:我很困惑。现在解决了。@Nathan DeWitt:你说得对。。。它属于ServerFault,因为这是服务器配置问题。@Powerlord:我仍然不同意。设置程序员工具更可能是分配给程序员的任务,而不是分配给服务器管理员的任务。我知道,在我所有的工作中,从来没有一个服务器管理员会说“哦,嘿,让我为你设置源代码控制软件”。事实上,情况恰恰相反。“这是一个程序员工具,你自己做。”@Nathan DeWitt:在这里,我将引用原始帖子中把它作为服务器管理员的工作的部分:“我们迁移到了一个不同的源代码管理系统”谢谢,当你不使用自己的SVN服务器,而是使用Windows服务器上的一个简单文件夹(例如,使用“在此处创建存储库”的功能。@Romuald Brunet,你能编辑你的姿势,将“>&2”添加到回声中吗?对于阅读@TimMeyer评论的人,请注意使用文件:///SVN”服务器“不建议这样做。请参阅以供参考:不要被让所有用户通过file://url直接访问存储库的简单想法所诱惑。即使每个人都可以通过网络共享随时使用存储库,这也不是一个好主意。它删除了用户和存储库之间的任何保护层:用户可能会意外(或故意)损坏存储库数据库,@BaptisteMathus我知道,我们(最终)同时切换到SVN服务器;-)这是一个很好的解决方案。它可以通过使用start-commit钩子来改进。该钩子的运行时间早于预提交钩子。手册中的“启动提交挂钩在创建提交事务之前运行。它通常用于确定用户是否拥有提交权限”和“常见用途:访问控制(例如,出于某种原因临时锁定提交)”。值得一提的是,您还需要在http.conf文件中配置authz文件。不确定默认值是什么-我想每个人都可以读/写吗?这只有在使用Apache或SVN服务时才有用。我使用svn+ssh,但这不适用。这仅在authz文件允许以只读方式访问任何人时才有效;如果您有私人分支机构,这可能会使它们向公众开放。所以要小心。要对所有存储库执行此操作,请使用
[/]
#!/bin/sh
echo "No more commit here - this is an archive branch" 1>&2
exit 1