我想使用 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
您所期望的。