Come inviare condizionalmente svn commit-mail, sulla base di parole chiave commettere messaggio?
-
21-09-2019 - |
Domanda
Ho VisualSVN esecuzione con svnnotify invio di e-mail di notifica via post-commit (l'impostazione comune), ma mi piacerebbe non inviare e-mail quando determinate parole chiave sono compresi nel messaggio di commit , come ad esempio "#noemail" o qualcosa di simile.
Qualcuno ha un esempio di quello che posso aggiungere al mio post-commit hook di guardare la posta elettronica messaggio di commit e impedire che vengano inviati in presenza di determinate parole chiave?
Grazie!
Cordiali saluti, ecco un esempio di mio attuale contenuti post-commit:
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 - "
Soluzione
Ecco la soluzione, utilizzando parole chiave "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
Altri suggerimenti
Per Linux, il seguente hooks/post-commit
funziona:
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
la stringa nosvnemail
deve essere il primo nel messaggio di log.