繁体   English   中英

提交被预提交挂钩SVN阻止

[英]Commit blocked by pre-commit hook SVN

我的服务器上有Subversion,当我尝试提交时出现了以下错误:

error creating module:org.tigris.subversion.javahi.ClientException:svn:
Commit blocked by pre-commit hook(exit code 199) with no output.
svn MERGE of '/svn/mssql/trunk':409 Conflict (http://www.domain.com)

然后我尝试检查/ var / log / httpd / error_log中的错误日志

我收到像下面这样的错误:

Could not MERGE resource "/svn/[project name]/!svn/act/8b7476df-3701-0010-a025-c590208c08a0" into  "/svn/[project name]/trunk"

Commit blocked by pre-commit hook (exit code 199) with no output.  [409, #165001]

那是什么错误?

如何解决呢?

有两种不同类型的预提交挂钩:

  • 服务器端:这是标准的Unix预提交钩子。 挂钩本身位于存储库hooks目录中。 如果挂钩不是可执行文件,或者没有名为pre-commit的挂钩脚本,则挂钩不会运行。
  • TortoiseSVN客户端挂钩:该挂钩在客户端上,特定于TortoiseSVN。

当您说pre-commit hook时 ,您是在谈论服务器上的钩子还是计算机上的钩子 您说您通过将exit 0放在前面来修改了该钩子。

您没有说明钩子是做什么的,也没有说明是谁把它放在那里的。 这使得很难确定出了什么问题。 有成千上万的Subversion钩子围绕着执行各种任务。 我不知道这是什么。 谁设置了这个钩子? 默认情况下,Subversion没有活动的钩子。 一定有人添加了它。 谁干的?

而且,他们为什么要挂这个钩子? 这个挂钩应该完成什么。 一些挂钩可防止将重复文件添加到存储库。 有些可以防止套管不匹配。 有的做安全,有的只是开玩笑。

将您的钩子粘贴Pastebin上 ,然后回来,让我们知道您已更新它。 让我们知道是谁添加了这个钩子以及为什么。

否则,我们无能为力。

我可以使用以下代码在预提交脚本上添加新行来解决此问题:

#!/bin/sh
exit 0;

之后,我可以提交,更新,签出等:)

但是我必须在每个存储库项目上手动添加这些行吗? 克服这个问题的另一个思路是什么?

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM