2011-12-08 50 views

回答

5

Condering一个post-commit hook作用:

任何标准错误的钩子将被编组回客户端,使其更容易诊断钩子的失败。

你可以检查,如果这不是一个简单的问题帖:

echo "my message" >&2 

可以在那些hook examples任何echo>&2包括引号看到。

bash chapter on redirection还包含带引号的示例。

然而,在his answerpmod细节,即标准错误信息将不可见,除非脚本的退出状态从0不同,为“subversion post-commit hook: print an error message that the user can see?

#!/bin/bash 
echo "test" >&2 
exit 1 
+0

由于pmod如下所述,如果此(或任何)钩子返回非零返回值,则只会将stderr屏幕打印到客户端。这可能是@CamelBlues遇到的问题。 – physicsmichael

+0

这个答案是错误的。 Pmod有正确的脚本必须返回非0值。 – Catskul

11

钩子只有在失败时才会显示STDERR(并且您可能现在钩子不显示STDOUT)。 因此,您必须从脚本中返回非零代码,以便将“我的消息”传递给用户(仅在echo后添加出口1)。

看看here

如果提交后钩子返回非零值,提交将 不会终止,因为它已经完成。但是,钩子打印到stderr的所有内容都将汇总回客户端, 可以更容易地诊断钩子故障。

4

我有同样的问题所示,与Apache和mod_svn。事实证明,编组失败时编组文本包含&,<>字符。在用&amp;&lt;&gt;代替它们后,文本通过了。

+0

谢谢!这正是我们所面对的mod_svn。永远不会想出来...... –

相关问题