我VisualSVN正在运行,svnnotify通过提交后发送通知电子邮件(常见设置),但我想在某些关键字包含在内时不发送电子邮件提交消息,例如“#noemail”或类似内容。
任何人都有一个例子,我可以添加到我的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 - "
答案 0 :(得分:3)
以下是解决方案,使用关键字“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
答案 1 :(得分: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
字符串必须是日志消息中的第一个。