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

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

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

我正在使用 Trac 0.11.4,并已下载这个钩子来自他们的网站。我已将其放入/usr/local/bin/chmod +x编辑。post-commit钩子/var/svn/myrepo/hooks/看起来就像 Trac Guide 建议的那样:

#!/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.

有什么问题?

答案1

我认为问题与权限有关。确保post-commit脚本和都rac-post-commit-hook具有适当的权限。如果使用命令行可以正常工作,请尝试以运行 svn 守护程序的用户身份执行此操作(sudo -u svnuser [cmd])。

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

答案2

让我们在脚本中使用“set -x”来进行故障排除。

答案3

仔细检查环境变量;最常见的原因之一是没有得到$PATH您所期望的。

相关内容