2009-10-13 47 views
3

我有VisualSVN運行svnnotify通過post-commit(普通設置)發送通知郵件,但我想當某些關鍵字包含在提交消息中時不發送郵件,例如「#noemail」或類似的東西。如何根據提交消息關鍵字有條件地發送svn commit email?

任何人都有我可以添加到我的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 - " 

回答

3

這裏的解決方案,使用關鍵字 「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

對於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字符串必須在日誌消息中第一個。

相關問題