0. Подразумеваю, что настраивать будем для репозитория javacation, который находится в каталоге /var/www/svn/javacation
1. Забираем уже готовые скрипты, которые любезно предоставлены Apache Foundation
cd /var/www/svn/javacation
sudo svn co http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/
2. Скопируем файл конфигурации в каталог conf нашего репозитория (только для того, чтобы файлы конфигурации находились в одном месте, на самом деле его фактическое расположение может быть другое и даже более того, если вы используете один и тотже файл конфигурации для разных проектов, то возможно лучшим местом для этого файла окажется путь /etc/subversion)
sudo cp hook-scripts/mailer/mailer.conf.example ./conf/mailer.conf
3. Отредактируйте файл конфигурации mailer.conf
Снимите комментарий с параметра mail_command, в случае, если у вас настроен sendmail
mail_command = /usr/sbin/sendmail
или корректно настройте SMTP (smtp_hostname, smtp_username, smtp_password), в случае, если локальный MTA не настроен
Отредактируйте поля from_addr, to_addr и commit_subject_prefix:
from_addr = svn@javacation.ru
to_addr = ags@nospam.ru
commit_subject_prefix = [svn-%(repos_basename)s]
4. На этом этапе вы можете протестировать работоспособность скрипта post-commit например такой командой (где 10 это номер ревизии):
/var/www/svn/javacation/hook-scripts/mailer/mailer.py \
commit "/var/www/svn/javacation/" "10" /var/www/svn/javacation/conf/mailer.conf
5. Если вы используете selinux не забудьте выдать необходимые разрешения для выполнения скриптов:
sudo /usr/bin/chcon -R -t httpd_sys_script_exec_t /var/www/svn/javacation/hooks/post-commit
sudo /usr/bin/chcon -R -t httpd_sys_script_exec_t /var/www/svn/javacation/hook-scripts/mailer/mailer.py
6. Проверяйте, все должно работать. Если вы правильно все настроили, то после коммита в проект вам (точнее тем, кто перечислен в параметре to_addr конфигурационного файла) придет примерно вот такое письмо:
From: svn@javacation.ru
To: ags@nospam.ru
Subject: [svn-javacation] r18 - trunk/src/main/java
Author: ags
Date: Sun Jun 23 14:29:22 2013
New Revision: 18
Log:
Внесены изменения в проект
Added:
trunk/src/main/java/B.java
Modified:
trunk/src/main/java/A.java
Modified: trunk/src/main/java/A.java
==============================================================================
--- trunk/src/main/java/A.java Sun Jun 23 14:27:39 2013 (r17)
+++ trunk/src/main/java/A.java Sun Jun 23 14:29:22 2013 (r18)
@@ -1,7 +1,8 @@
+/**
+ * Добавлен комментарий. Модифицирован файл
+ * @author ags
+ *
+ */
public class A {
-
}
-//
-//
-
Added: trunk/src/main/java/B.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/src/main/java/B.java Sun Jun 23 14:29:22 2013 (r18)
@@ -0,0 +1,9 @@
+
+/**
+ * Новый класс...
+ * @author ags
+ *
+ */
+public class B extends A {
+
+}
Комментариев нет:
Отправить комментарий