2012-10-02 63 views
1

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

最好的方法是说一下: 如果你没有登录(allowLoginsUser数组),那么“你还没有提交!”并阻止 其他“允许提交”并提交

有什么办法吗?

+0

你为什么不分支?这是这些默认的工作模式。 –

+0

因为这不是里程碑。一个开发团队想要在我们的主要图书馆中输入大的变化。他准备了涵盖95%左右代码的极端大型单元测试。我们必须在测试中冻结这个项目。 –

回答

2

您应该查看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是你的仓库。

+0

您只能锁定文件,而不能锁定文件夹。所以你需要为每个文件写asvn lock命令。 –

+0

你说得对,应该在每个文件的基础上应用锁定。你关于使用几个'authz'文件的想法实际上是更简单的(并且在[这里](http://stackoverflow.com/a/2225859/1374267)中有描述)。 –

0

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

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

1

您有几种选择:

  1. 供所有用户使用的AuthZ的基于路径的授权,禁止写访问
  2. 使用pre-commit钩子被禁用特定的资源库的所有写访问放置一个

    exit 1;

    进去

  3. 使用更先进的pre-commit钩子,examinig已更改的文件,如果冻结项目发生

他们被困难和精力开始对最简单的排名拒绝访问。

+0

1.5。在基于路径的授权中使用访问控制组以允许_(allowLoginsUser数组)提交。 [链接](http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html) – grams

+0

@grams:你完全正确的感谢你添加它! –

相关问题