Назад | Перейти на главную страницу

Trac + SVN: Почему не работает перехватчик post commit?

Я хочу использовать стандартный обработчик пост-фиксации 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 вы ожидаете.