Я хочу использовать стандартный обработчик пост-фиксации Trac для SVN.
Я использую 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.
В чем проблема?
Я предполагаю, что проблема связана с разрешением. Убедитесь, что оба post-commit
сценарий и rac-post-commit-hook
иметь соответствующие привилегии. Если это работает для вас с использованием командной строки, попробуйте сделать это как пользователь, который запускает демон svn (sudo -u svnuser [cmd]
).
Я мог исправить подобную проблему год назад или около того, добавив "chmod o + x" в оба сценария.
давайте «установим -x» в скрипте для устранения неполадок.
Дважды проверьте переменные среды; одна из наиболее частых причин - отсутствие $PATH
вы ожидаете.