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

Tags: ,

Friday, February 13th, 2009 Uncategorized Comments Off