#java #perl #svn #hook
#java #perl #svn #перехват
Вопрос:
Я использую SVNNotify для отправки сообщений с уведомлением после фиксации. Иногда я делаю опечатку и хочу снова зафиксировать, но я НЕ хочу бомбардировать своих пользователей еще одним неважным сообщением электронной почты. Поэтому было бы неплохо иметь специальную директиву, чтобы сообщить SVNNotify, что на этот раз ему НЕ нужно отправлять какое-либо электронное письмо. Что-то отправлено через сообщение журнала svn:
svn commit -m ‘Опечатка (_no_email_)’
Таким образом, SVNNotify проанализирует _no_email_ и поймет, что на этот раз ему НЕ нужно уведомлять.
Кто-нибудь знает PERL и / или SVNNotify для выполнения такого взлома Notify.pm ?
Спасибо!!!
Ответ №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];
}
Ответ №2:
В SVN::Notify есть способ создания пользовательских фильтров. Взгляните на документацию для SVN::Notify::Filter . Это выглядит довольно просто, и есть много примеров.
perldoc SVN::Notify::Filter