4

我已经让VisualSVN运行svnnotify通过 post-commit 发送通知电子邮件(常见设置),但我不想在提交消息中包含某些关键字时发送电子邮件,例如“#noemail”或类似的东西。

任何人都有我可以添加到我的提交后挂钩以查看提交消息并防止在某些关键字存在时发送电子邮件的示例?

谢谢!


仅供参考,这是我当前提交后内容的示例:

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 - "
4

2 回答 2

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
于 2009-10-13T16:59:54.100 回答
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字符串必须位于日志消息的首位。

于 2016-10-11T01:58:42.870 回答