我想为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 。