Как условно отправить svn commit email, основываясь на ключевых словах фиксации сообщения? - PullRequest
4 голосов
/ 13 октября 2009

У меня VisualSVN работает с svnnotify отправка уведомлений по электронной почте через post-commit (общая настройка), но я бы не отправлял электронную почту при определенных обстоятельствах ключевые слова включены в сообщение фиксации , например, "#noemail" или что-то подобное.

У кого-нибудь есть пример того, что я могу добавить к своей ловушке после фиксации, чтобы посмотреть сообщение фиксации и предотвратить отправку электронной почты, если существуют определенные ключевые слова?

Спасибо!


К вашему сведению, вот пример моего текущего содержания после фиксации:

set REPOS=%1
set REV=%2
set EMAILADDRESSES="example@example.com"
set OS=Windows_NT
set PATH=%PATH%;C:\Program Files\VisualSVN Server\bin\;C:\Perl\site\bin;C:\Perl\bin;

svnnotify --repos-path %REPOS% --revision %REV% --to %EMAILADDRESSES% -f svn@example.com --smtp smtp.example.com --subject-prefix "SVN - Rev: %%d - "

Ответы [ 2 ]

3 голосов
/ 13 октября 2009

Вот решение, использующее ключевое слово "nosvnemail":

set REPOS=%1
set REV=%2
set EMAILADDRESSES="example@example.com"
set OS=Windows_NT
set PATH=%PATH%;C:\Program Files\VisualSVN Server\bin\;C:\Perl\site\bin;C:\Perl\bin;

svnlook log -r %2 %1 | FindStr "nosvnemail"

IF %ERRORLEVEL% EQU 0 GOTO SKIPEMAIL

svnnotify --repos-path %REPOS% --revision %REV% --to %EMAILADDRESSES% -f svn@example.com --smtp smtp.example.com --subject-prefix "SVN - Rev: %%d - "

:SKIPEMAIL

exit 0
0 голосов
/ 11 октября 2016

Для Linux будет работать следующее hooks/post-commit:

REPOS="$1"
REV="$2"
SVNLOOK=$(which svnlook)

LOGMSG=$($SVNLOOK log -r $REV $REPOS)
if [[ $LOGMSG != nosvnemail* ]] ; then
    "$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
fi

строка nosvnemail должна быть первой в сообщении журнала.

...