bes*_*bov 6 git shell hook trac git-post-receive
我正在使用带有trac的git.推后我想做两件事:
第一件事是通过git-commit-notifier解决的.在我创建post-receive hook之后它完美地工作:
#!/bin/sh /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
我的第二个要求可以在http://trac-hacks.org/wiki/GitPlugin#post-receivehookscripts中解释.它也适用于这种后接收挂钩:
#!/bin/sh /var/trac/testgit/commit-updater
当它们分开时,这两件事都有效.但我需要将它们结合起来.所以我创建了post-receive钩子:
#!/bin/sh /var/trac/testgit/commit-updater /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
这很有趣,但这不起作用.单独运行时,命令运行得非常好,但只有第一个在放入后接收挂钩时才能运行.
如果我有这样的钩子:
#!/bin/sh /var/trac/testgit/commit-updater /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
我收到以下错误
/var/lib/gems/1.8/gems/git-commit-notifier-0.8.0/bin/git-commit-notifier:12: undefined method `strip' for nil:NilClass (NoMethodError)
from /var/lib/gems/1.8/bin/git-commit-notifier:19:in `load'
from /var/lib/gems/1.8/bin/git-commit-notifier:19
但是,如果我改变这两个命令的顺序,我没有收到任何错误,但只有第一个命令工作.
我将不胜感激任何帮助.我试图解决这个问题很长一段时间,我没有想法.
假设我的评论是正确的,并且commit-updater正在吃掉所有这些stdin,这应该可以解决问题:
#!/bin/sh
FILE=`mktemp`
cat - > $FILE
cat $FILE | /var/trac/testgit/commit-updater
cat $FILE | /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
rm $FILE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1952 次 |
| 最近记录: |