0

我做了什么 - 问题是什么

我添加了 svn 中存在几个文件的目录:

$ svn add ABC (ABC is directory)
A ABC
A ABC/file_1
A ABC/file_2
A ABC/file_3

然后我做了-

$ svn ci -m "some comments" ABC
Adding  ABC
Adding  ABC/file_1
Adding  ABC/file_2
Adding  ABC/file_3
Transmitting file data..svn commit failed details follows
svn commit blocked by precommit hook exit code3 with output

现在我无法提交,也不知道如何成功。你能帮我吗?谢谢。

4

1 回答 1

1

你没有做错什么。

问题在于预提交挂钩。出于某种原因,预提交挂钩正在阻止您的提交完成。这是预提交挂钩的目的:如果交易违反了某些特定于站点的策略,则阻止交易完成。

没有标准的预提交钩子。它们必须由站点实施。许多网站出于各种原因编写自己的网站。有些使用各种标准的预提交钩子。因此,您必须找到负责您的 Subversion 存储库的人,并询问 pre-commit 挂钩、它应该做什么以及它为什么会拒绝您的特定事务。

通常情况下,pre-commit 钩子的作者会很友善地给你一个理由。(就像您没有添加目录的权限或存储库由于某种原因被锁定)。但是,看起来执行您的预提交挂钩的人未能提供任何类型的错误消息,这使得无法确定可能出现的问题。很可能,预提交挂钩本身存在错误,并且根本没有完成。

让使用 pre-commit 钩子的站点对其进行修改,因此当它失败时它总是会给你一个错误消息。如果预提交挂钩将输出写入 STDERR,如果预提交挂钩未能提交,它将打印出该信息,但如果允许提交则不会。因此,他们应该在提交钩子中添加调试代码,这样当它失败时,很容易看到它失败的地方,如果有什么原因拒绝你的事务,它会给你原因。

于 2012-10-11T13:45:40.513 回答