По какой-то причине скрипт ruby и скрипт ловушек по умолчанию у меня не работают. Это может быть связано с некоторыми странностями с нашим почтовым сервером, но я все равно включу здесь важную часть:
#!/bin/sh
REPOS="$1"
REV="$2"
svnnotify --repos-path "$REPOS" --revision "$REV" --with-diff --to mailinglist@server.domain --smtp mailserver.domain --from svn@server.domain -VVVVVVVVV -P "[repository_name]"
Часть -VVVVVVV отображает очень подробные сообщения, если вы хотите проверить команду вне сценария. Он должен быть удален в самом скрипте.
Конечно, чтобы это работало, вам нужно установить svnnotify. Вы можете установить это, сначала установив cpan, который должен поставляться с perl. Затем вам нужно запустить cpan и установить библиотеку SVN :: Notify.
$ cpan
cpan> install SVN::Notify
Обратите внимание, что части '$' и 'cpan>' являются просто подсказками, их вводить не нужно.
Это решение было гораздо более привлекательным для меня, потому что оно давало подробное сообщение об ошибке, которое помогло разобраться с теми проблемами с почтовым сервером, о котором я говорил. У нас также есть несколько репозиториев, поэтому копирование всей программы / скрипта в каждый каталог было бы излишним. Ваш пробег может отличаться.
Текст в блоке кода вверху должен быть помещен в текстовый файл с именем «post-commit». Этот файл должен быть расположен в / path / to / svn / repos / repository_name / hooks и помечен как исполняемый.