无法从svn预提交挂钩生成输出

Saj*_*lai 4 svn pre-commit-hook

我有一个centos6 linux服务器托管svn(版本1.6.11(r934486))repo,可通过Apache通过DAV访问.我使用windows tortoise-svn客户端1.7.12来访问repo.

我有一个非常简单的测试预提交钩子,总是会失败.

echo "this is a test"
exit 1
Run Code Online (Sandbox Code Playgroud)

尝试失败的尝试

Sending content: D:\code\foo\test.c  
Error: Commit failed (details follow):  
Error: Commit blocked by pre-commit hook (exit code 1) with no output.  
Completed!:   
Run Code Online (Sandbox Code Playgroud)

我期待在我的客户端上看到"这是一个测试",但是我得到了预先提交钩子而没有输出.hooks/pre-commit是可执行的,并且当在linux服务器上手动运行时回显预期的输出.

关于我缺少什么的任何指示?

ear*_*arl 6

只有打印到stderr的输出才会转发给客户端.因此,以下更改应使您的测试挂钩工作:

echo "this is a test" >&2
exit 1
Run Code Online (Sandbox Code Playgroud)

作为参考,这里是Subversion书中的相关引用:

"如果pre-commit钩子程序返回非零退出值,则中止提交,删除提交事务,并将打印到stderr的任何内容编组回客户端."