svn
Случайное совпадение
Выбирал hostname машины, на которой будет находится трак и свн. Хотел выбрать название из древнегреческих богов(пытался найти бога памяти), не нашел. Следующая идея — нужно сервер назвать как один из спутников Юпитера. Первый спутник Юпитера - Метида назван в честь древнегреческой богини мудрости Метиды, первой супруги Зевса. =)
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
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Jun | ||||||
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||