2009-10-13 8 views
3

J'ai VisualSVN en cours d'exécution avec svnnotify envoyer un courriel de notification via post-commit (la configuration commune), mais je voudrais pas envoyer de courriel lorsque certains mots clés sont inclus dans le message de livraison, comme "#noemail" ou quelque chose de similaire. Quelqu'un at-il un exemple de ce que je peux ajouter à mon hook post-commit pour regarder le message de commit et empêcher l'envoi de mail si certains mots-clés existent?Comment envoyer de manière conditionnelle l'email svn commit, basé sur des mots-clés de commit?

Merci!


Pour votre information, voici un exemple de mon contenu actuel post-commit:

set REPOS=%1 
set REV=%2 
set EMAILADDRESSES="[email protected]" 
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 [email protected] --smtp smtp.example.com --subject-prefix "SVN - Rev: %%d - " 

Répondre

3

est ici la solution, en utilisant le mot "nosvnemail":

set REPOS=%1 
set REV=%2 
set EMAILADDRESSES="[email protected]" 
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 [email protected] --smtp smtp.example.com --subject-prefix "SVN - Rev: %%d - " 

:SKIPEMAIL 

exit 0 
0

Pour Linux, le hooks/post-commit suivant fonctionnera:

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 chaîne nosvnemail doit figurer en premier dans le message du journal.

Questions connexes