【问题标题】:Is there way to block any change in SVN?有没有办法阻止 SVN 的任何变化?
【发布时间】:2012-09-23 07:27:03
【问题描述】:

我们想要检查版本而不是冻结项目(阻止 SVN 的任何更改)。有什么办法吗?我不想创建分支。我只想在几个小时内冻结项目。

最好的方法是这样说: 如果您没有以(allowLoginsUser 数组)身份登录,那么“您还没有提交!”并阻止 否则“允许提交”并提交

有什么办法吗?

【问题讨论】:

  • 你为什么不分支?这是当今的默认工作模式。
  • 因为这不是里程碑。一个开发团队想要将大的更改输入到我们的主库中。他准备了超大单元测试,覆盖了大约 95% 的代码。我们必须在测试中冻结这个项目。

标签: svn administration


【解决方案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】:

您有多种选择:

  1. 使用基于 authz 路径的授权并禁用所有用户的写访问权限
  2. 使用预提交挂钩通过放置一个

    来禁用对特定存储库的所有写访问权限

    退出 1;

    进去

  3. 使用更复杂的预提交挂钩,检查更改的文件并在冻结项目发生时拒绝访问

他们从最简单的开始按难度和努力进行排名。

【讨论】:

  • 1.5.在基于路径的授权中使用访问控制组以允许 (array of allowLoginsUser) 提交。 link
【解决方案3】:

您可以临时编辑 ./conf/passwd 文件(如果您使用密码用户身份验证)并注释掉所有用户名前的“#”。保存文件并重启SVN服务器。

然后取消注释他们的名字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多