Хук post-commit SVN не обновляет билеты Trac через svn + ssh - PullRequest
2 голосов
/ 24 июля 2011

Хук post-commit отлично работает, когда я фиксирую изменения с сервера, на котором работают SVN и Trac. Однако, когда я фиксирую удаленно с моего Mac, активность отображается на временной шкале Trac, но билет не обновляется.

Я пробовал это в Netbeans 7, а также из командной строки & mdash; тот же результат. Я вошел в систему с тем же именем пользователя на сервере и Mac, хотя и с другим паролем. Я знаю, что это не должно иметь значения, потому что все работало хорошо в течение нескольких месяцев, вплоть до нескольких дней назад.

Я не уверен, что могло измениться на моем Mac или сервере, чтобы нарушить эту функцию.

Дополнительная информация, добавлена ​​26.07.2011:

На моем Mac я использую svn + ssh: //, на сервере используя file: ///

У меня установлен уровень журнала Trac на DEBUG, но я не совсем уверен, что мне нужно искать.

Мой скрипт пост-фиксации показан ниже. Обратите внимание, что я знаю, что сам пост-коммит работает, потому что оба обновления 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 

Ответы [ 2 ]

0 голосов
/ 24 мая 2012

Старый вопрос, но у меня была та же проблема, и я решил ее довольно скоро.Я получил только сообщение об ошибке:

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.

0 голосов
/ 26 июля 2011

Можете ли вы опубликовать содержимое сценария перехвата после фиксации?

Когда вы делаете коммит с сервера, как вы получаете доступ к репозиторию? Используете ли вы синтаксис file:// для хранилища или тот же URL-адрес svn+ssh://, который вы используете при удаленной фиксации? Получаете ли вы одинаковые результаты, если вы используете оба этих метода доступа?

Кроме того, попробуйте развернуть параметры ведения журнала Trac до максимума и посмотрите, не окажется ли что-нибудь полезное в файле журнала.

...