Самый простой/лучший способ настроить отправку писем SVN?
Я хотел бы настроить фиксацию сообщений электронной почты в проекте, над которым я работаю, как описано здесь:
http://producingoss.com/en/vc.html#commit-emails
То есть, используйте фиксацию post commit для отправки электронной почты в список, содержащий заголовок/журнал фиксации и различные изменения.
Какой самый простой способ на Linux-машине настроить это?
Ответы
Ответ 1
При создании нового хранилища образец post-commit hook предоставляется в hooks/post-commit.tmpl
. Он содержит строку, которая выглядит примерно так:
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" [email protected]
Просто замените адрес электронной почты адресом, на который вы хотите отправлять уведомления, переименуйте script в hooks/post-commit
(удалите расширение tmpl
) и сделайте его выполнимым (chmod a+x
).
При запуске commit-email.pl
script без каких-либо аргументов вы увидите экран использования с дополнительными параметрами, которые позволяют, например, изменять строку темы или адрес From.
Обратите внимание, что в случае Debian commit-email.pl
script находится в дополнительном пакете subversion-tools
.
Ответ 2
Хотя этот вопрос немного устарел, просто подумал, что оставлю свое мнение для тех, кто приезжает сюда из Google:
Я рассмотрел упомянутые здесь решения. commit-email.pl
было легче и лучше работать для меня. Тем не менее, я считаю, что оба решения не имеют надлежащего форматирования.
Таким образом, пакет svnnotify
, кажется, создает для меня достаточно хорошо отформатированные и цветные письма.
В системах Debian/Ubuntu вы можете установить его, набрав:
apt-get install libsvn-notify-perl
Затем, если вы собираетесь отправлять письма в учетные записи Gmail, из-за нечетной поддержки CSS в Gmail, я настоятельно рекомендую применить патч найденный здесь, что означает:
- Загрузите
HTML.pm
и ColorDiff.pm
- Замените их
/usr/share/perl5/SVN/Notify/HTML.pm
и /usr/share/perl5/SVN/Notify/HTML/ColorDiff.pm
соответственно.
И, наконец, установите post-commit
hook script обычным способом:
# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" \
--to [email protected] \
--from [email protected] \
--with-diff \
--subject-cx \
--subject-prefix 'Your Project Name: ' \
--handler HTML::ColorDiff \
--css-inline
2>&1 &
exit 0
Ответ 3
Мы используем svnmailer. Мы привязываем наши скрипты-крючки post-commit
, привязанные к репозиториям, к одному script, который, в свою очередь, вызывает svnmailer. Конфигурация довольно прямолинейна, и с их примерной конфигурацией simple.conf
вы можете запускаться и запускаться через несколько минут. Обратите внимание, что он написан на Python, поэтому это является обязательным условием для установки.
Весь наш крюк после фиксации script - всего несколько строк (обратите внимание, что вы можете делать другие вещи в своем post-commit hook, но в настоящее время мы этого не делаем):
#!/bin/sh
CONFIG="/usr/local/svnmailer/default.conf"
MAILER="/usr/bin/svn-mailer"
# These are passed in by subversion
REPOS="$1"
REV="$2"
"${MAILER}" --commit \
--config "${CONFIG}" \
--repository "${REPOS}" \
--revision "${REV}" \
--background
Ответ 4
Проверьте svn-mod-email пакет, описанный здесь. svn-mod-email - это мощный инструмент для управления уведомлениями по электронной почте SVN, который поставляется в виде архива Debian. Его легко установить, настроить и использовать.