有没有办法阻止 SVN 的任何变化?
Posted
技术标签:
【中文标题】有没有办法阻止 SVN 的任何变化?【英文标题】:Is there way to block any change in SVN? 【发布时间】:2012-09-23 07:27:03 【问题描述】:我们想要检查版本而不是冻结项目(阻止 SVN 的任何更改)。有什么办法吗?我不想创建分支。我只想在几个小时内冻结项目。
最好的方法是这样说: 如果您没有以(allowLoginsUser 数组)身份登录,那么“您还没有提交!”并阻止 否则“允许提交”并提交
有什么办法吗?
【问题讨论】:
你为什么不分支?这是当今的默认工作模式。 因为这不是里程碑。一个开发团队想要将大的更改输入到我们的主库中。他准备了超大单元测试,覆盖了大约 95% 的代码。我们必须在测试中冻结这个项目。 【参考方案1】:您应该查看svn lock
命令。
您可以在SVN book's 'Locking' chapter 中找到有关它的更多信息。
通常,你会做类似的事情
svn lock -m "Freeze project for a few hours" PATH
# do what you need to do
svn unlock PATH
PATH
是您的存储库。
【讨论】:
您只能锁定文件,不能锁定文件夹。所以你需要为每个文件编写 asvn lock 命令。 你说得对,应该在每个文件的基础上应用锁定。您关于使用多个authz
文件的想法实际上更简单(描述为 here)。【参考方案2】:
您有多种选择:
-
使用基于 authz 路径的授权并禁用所有用户的写访问权限
使用预提交挂钩通过放置一个
来禁用对特定存储库的所有写访问权限退出 1;
进去
使用更复杂的预提交挂钩,检查更改的文件并在冻结项目发生时拒绝访问他们从最简单的开始按难度和努力进行排名。
【讨论】:
1.5.在基于路径的授权中使用访问控制组以允许 (array of allowLoginsUser) 提交。 link【参考方案3】:您可以临时编辑 ./conf/passwd 文件(如果您使用密码用户身份验证)并注释掉所有用户名前的“#”。保存文件并重启SVN服务器。
然后取消注释他们的名字。
【讨论】:
以上是关于有没有办法阻止 SVN 的任何变化?的主要内容,如果未能解决你的问题,请参考以下文章