提交由预提交挂钩SVN阻止

时间:2012-06-13 13:57:06

标签: svn pre-commit

我在我的服务器上进行了颠覆,当我尝试提交时,我得到了像bellow一样的错误:

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]

那是什么错误?

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

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

当您说预提交挂钩时,您是在谈论服务器上的那个还是计算机上的那个?你说你通过将exit 0放在前面来修改了钩子。

你没有陈述钩子做什么,或者谁把它放在那里。这使得很难确定出现了什么问题。有数以千计的Subversion钩子在执行各种任务时浮动。我不知道这个是什么。谁设置了这个钩子?默认情况下,Subversion没有挂钩活动。有人必须添加它。谁做了?

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

Pastebin上发布您的挂钩,然后回来告诉我们您已更新它。让我们知道谁添加了钩子以及为什么。

否则,我们无能为力。

答案 1 :(得分:-1)

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

#!/bin/sh
exit 0;

之后,我可以提交,更新,结账等等:)

但我必须在每个存储库项目上手动添加这些行吗?是另一个克服这一点的理念吗?

由于