Я использую git с trac. После нажатия я хочу сделать две вещи:
- Отправка электронной почты команде разработчиков с помощью diff
- Если в сообщении фиксации есть какая-то специальная фраза (например, «см. № 1»), то я хочу, чтобы сообщение фиксации было помещено в билет trac.
Первое решается git-commit-notifier. Он отлично работает после того, как я создал хук после получения:
#!/bin/sh /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
Мое второе требование может быть решено, как описано в http://trac-hacks.org/wiki/GitPlugin#post-receivehookscripts. Он также отлично работает с таким хуком post-receive:
#!/bin/sh /var/trac/testgit/commit-updater
Обе 2 вещи работают, когда они разделены. Но мне нужно их совместить. Итак, я создал хук после получения:
#!/bin/sh /var/trac/testgit/commit-updater /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
Это очень забавно, но это не работает. Команды работают отлично, когда запускаются отдельно, но только первая работает, когда они помещены в хук post-receive.
Если у меня есть такой крючок:
#!/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
Но если я изменяю порядок этих 2-х команд, я не получаю никаких ошибок, а работает только первая команда.
Я буду признателен за любую помощь. Я пытаюсь решить эту проблему в течение длительного времени, и у меня нет никаких идей.