Saturday, 29 January 2011

Как сделать посыл писем при коммите в SVN репозиторий?

Платформа: CentOS 5.5

Переходим в папку репозитория:
cd /var/spool/svn/имя_репо/hooks/

Берем заготовленный пример конфига:
mv post-commit.tmpl post-commit
chmod +x post-commit

После этого открываем хук:
vi post-commit

Удаляем строку в самом низу "log-commit.py ...".

А строку "commit-email.pl" заменяем на следующую (адрес почтового ящика можно оставить один):
/usr/share/doc/subversion-1.4.2/tools/hook-scripts/commit-email.pl "$REPOS" "$REV" devel@domain.ru manager@domain.ru --diff y --from svn@domain.ru

Все, теперь при коммите мы будем получать на почту полный лог коммита и все диффы примерно следующего вида:
Author: nrg
Date: 2011-01-29 22:39:40 +0300 (Sat, 29 Jan 2011)
New Revision: 22

Modified:
trunk/TODO
Log:
fix todo

Modified: trunk/TODO
===================================================================
--- trunk/TODO 2011-01-28 16:29:06 UTC (rev 21)
+++ trunk/TODO 2011-01-29 19:39:40 UTC (rev 22)
@@ -1,3 +1,3 @@
-
-Юнит тест
\ No newline at end of file
+Юнит тест
+Тест пункт

Но при этом коммент к коммиту (если он был в UTF8) будет показан в стиле \100\123\213\112, чтобы это пофиксить нужно сделать следующее.

vim /usr/share/doc/subversion-1.4.2/tools/hook-scripts/commit-email.pl

И В самом верху делаем так:
#!/usr/bin/env perl

$ENV{'LC_ALL'} = 'en_US.UTF-8';

No comments:

Post a Comment

Note: only a member of this blog may post a comment.