有没有办法阻止 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 的任何变化?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法阻止派生类进一步实现虚函数?

有没有办法阻止 discord.py 机器人提及角色?

Android上有没有办法拦截来电/短信以阻止/取消阻止它?

有没有办法创建一个无法访问日志的 SVN 用户?

plsql批处理被表单屏幕阻止

在MySQL中阻止UPDATE语句没有添加WHERE条件的发生