SVNNotify:当svn日志消息中存在特殊关键字时,请勿发送通知电子邮件

时间:2011-10-10 19:31:02

标签: java perl svn hook

我正在使用SVNNotify发送提交后通知消息。有时候我会输错,我想再次提交,但我不想用另一个不重要的电子邮件来轰炸我的用户。所以最好有一个特殊的指令告诉SVNNotify这次不需要发送任何电子邮件。通过svn日志消息发送的东西:

svn commit -m'Typo(_no_email _)'

因此SVNNotify将解析_no_email_并理解它不需要通知此时间。

有没有人知道PERL和/或SVNNotify在Notify.pm上执行这样的黑客攻击?

谢谢!!!

2 个答案:

答案 0 :(得分:1)

您可以在/usr/local/share/perl/5.10.1/SVN/Nofity.pm上添加以下行:

# Abort if log message ends with _
exit if ($self->{message}[0] =~ /_\s*$/);

在这个循环内的第1299行:

# Add the first sentence/line from the log message.
unless ($self->{no_first_line}) {

    # Abort if log message ends with _
    exit if ($self->{message}[0] =~ /_\s*$/);

    # Truncate to first period after a minimum of 10 characters.
    my $i = index substr($self->{message}[0], 10), '. ';
    $self->{subject} .= $i > 0
        ? substr($self->{message}[0], 0, $i + 11)
        : $self->{message}[0];
}

答案 1 :(得分:0)

SVN :: Notify可以创建自定义过滤器。看一下SVN :: Notify :: Filter的文档。它看起来很简单,有很多例子。

perldoc SVN::Notify::Filter