Trac + SVN:为什么后提交钩不起作用?

我想为SVN使用标准的Trac post-commit-hook。

我正在使用Trac 0.11.4,并从他们的网站下载了这个钩子 。 我把它放到/usr/local/bin/chmod +x/var/svn/myrepo/hooks/post-commit挂钩看起来就像Trac Guidebuild议的那样:

 #!/bin/sh REPOS="$1" REV="$2" TRAC_ENV="/var/trac/mytracenv" /usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV" 

Trac环境目录/var/trac/mytracenv对于Subversion用户是可写的。 我正在运行独立的svnserve ,没有Apache。

如果我手动运行/usr/bin/python /usr/local/bin/trac-post-commit-hook -p /var/trac/mytracenv -r <somerev>作为Subversion用户, 但是,如果我做了一个提交(使用TortoiseSVN)它说:

Error post-commit hook failed (exit code 255) with no output.

有什么问题?

我认为这个问题是与权限有关的。 确保post-commit脚本和rac-post-commit-hook都具有适当的权限。 如果它适用于您使用命令行,请尝试以运行svn守护进程( sudo -u svnuser [cmd] )的用户身份执行。

我可以在一年前通过添加“chmod o + x”这两个脚本来解决类似的问题。

让我们在脚本中设置-x来排除故障。

仔细检查环境variables; 最常见的原因之一是没有你期望的$PATH