Archive for February 13th, 2009
trac-post-commit-hook
Было
При разработки программ с использование trac и svn очень удобно в коментариях к комитам в svn писать некий текст и дублировать его в тикете.
Т.е. при коммите:
svn ci -m "#123 - полностью решил тикет"
А в комменте к тикету писать:
[334] - полностью решил тикет
Т.е. чтобы в svn была ссылка на тикет, а в тикте - ссылка на svn. Это очень удобно использовать, но не удобно делать (понятно, что это делается с помощью copy&paste, но все равно лениво).
Стало
Можно настроить svn таким образом, чтобы после комита автоматически выполняллось некоторое действие. Существует вот такой скрипт: http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook - он смотрит, что есть в комментарии к комиту, вычленяет оттуда команду и либо пишет коммент к тикету, либо пишет коммент и закрывает тикет.
Т.е. использование этого скрипта, немного упрощает работу.
Как использовать
Вот такая комманада:
$ svn ci -m "re #1323 - тестирование тикета"
В тикет #123 пишет:
(In [334]) re #1323 - тестирование тикета
Т.е. формат коммента для svn следующий:
Комманда #1
Команды есть следующие:
- references, refs, addresses, re, see - любвая из этих комманд записывает ссылку на коммит и svn комментарий в тикет
- close, closed, closes, fix, fixed, fixes - то же самое + еще и закрывает тикет
Advanced команды можно узнать в докуменации к скрипту: http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook
Как настроить
Далее вместо $SVN нужно везде поставлять путь к svn-у (например /var/svn/test), а вместо $TRAC — путь к trac environment (например /var/trac/test). В тексте выделено курсивом.
1.
Создается файл $SVN/hooks/post-commit со следующим содержанием:
#!/bin/sh
REPOS=”$1″
REV=”$2″
TRAC_ENV=”$TRAC“
/usr/bin/python /usr/local/src/trac/contrib/trac-post-commit-hook \
-p “$TRAC_ENV” -r “$REV”
2.
Выставляем правильные права на файл
$ sudo chmod 755 $SVN/hooks/post-commit
3.
Получаем сам скрипт:
user@server:/usr/local/src/trac/contrib$ sudo wget http://trac.edgewall.org/export/7864/trunk/contrib/trac-post-commit-hook