Come inviare condizionalmente svn commit-mail, sulla base di parole chiave commettere messaggio?

StackOverflow https://stackoverflow.com/questions/1560596

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 - "
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top