当我从运行SVN和Trac的服务器提交更改时,提交后挂钩工作正常。但是,当我从Mac远程提交时,活动会显示在Trac的时间轴中,但是故障单不会更新。
我在Netbeans 7以及命令行中尝试了这一点 - 结果相同。虽然使用了不同的密码,但我在服务器和Mac上都使用相同的用户名登录。我知道这应该不重要,因为几天前一切都运行良好,直到几天前。
我不确定我的Mac或服务器上可能有什么变化来破坏这个功能。
更多信息,已添加7/26/2011:
在我的Mac上我使用svn + ssh://,在服务器上使用file:///
我确实将Trac日志级别设置为DEBUG,但我不太确定我应该寻找什么。
我的提交后脚本如下所示。请注意,我知道post-commit本身正在运行,因为QA更新和Campfire帖子都有效。我也尝试将$ TRAC_ENV,$ REPOS和$ REV输出到文件中,并且所有变量都设置正确。
#!/bin/sh
# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
<<<more comments, yada, yada>>>
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/ and
# http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/
REPOS="$1"
REV="$2"
TRAC_ENV=/usr/share/trac/projects/main
#commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
#log-commit.py --repository "$REPOS" --revision "$REV"
# update the qa working copy
/usr/bin/ruby /usr/local/svn-repo/hooks/scripts/svn-dev-wc-update.rb $REPOS $REV
# send a message to Trac concerning this commit
/usr/bin/trac-admin $TRAC_ENV changeset added $REPOS $REV
# send a message to Campfire's Engineering room
/usr/bin/ruby /usr/local/svn-repo/hooks/scripts/campfire-announce.rb $REPOS $REV
答案 0 :(得分:0)
您可以发布提交后挂钩脚本的内容吗?
从服务器提交时,如何访问存储库?您是使用存储库的file://
语法,还是使用远程提交时使用的相同svn+ssh://
URL?如果您尝试这两种访问方法,您会得到相同的结果吗?
此外,尝试将Trac的日志记录选项调到最大值,并查看日志文件中是否有任何有用的内容。
答案 1 :(得分:0)
老问题,但我遇到了同样的问题,很快就解决了。我只收到一条错误消息:
Warning: post-commit hook failed (exit code 2) with output:
Error: Command not found
未找到的命令不是tracadmin可执行文件。当我通过https进行提交时,这不会发生。但有什么区别?区别在于https commit会将钩子称为用户'www-data',而svn + ssh commit将使用实际用户的帐户。
我通过创建一个名为svnwrite的组来解决这个问题,将自己添加到它并将组写权限添加到我的trac项目目录。