X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/702b8721d360ca132ff5c8f43d332757694b98da..9928d5c962c644573b32919d03204966abaad521:/IkiWiki/Rcs/svn.pm

diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm
index 71189c82e..fbf6b2c9e 100644
--- a/IkiWiki/Rcs/svn.pm
+++ b/IkiWiki/Rcs/svn.pm
@@ -201,6 +201,7 @@ sub rcs_notify () { #{{{
 	
 	my $user=`svnlook author $config{svnrepo} -r $rev`;
 	chomp $user;
+	
 	my $message=`svnlook log $config{svnrepo} -r $rev`;
 	if ($message=~/$config{web_commit_regexp}/) {
 		$user=defined $2 ? "$2" : "$3";
@@ -214,44 +215,15 @@ sub rcs_notify () { #{{{
 			push @changed_pages, $1;
 		}
 	}
-		
+	
 	require IkiWiki::UserInfo;
-	my @email_recipients=commit_notify_list($user, @changed_pages);
-	if (@email_recipients) {
-		# TODO: if a commit spans multiple pages, this will send
-		# subscribers a diff that might contain pages they did not
-		# sign up for. Should separate the diff per page and
-		# reassemble into one mail with just the pages subscribed to.
-		my $diff=`svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`;
-
-		my $subject="$config{wikiname} update of ";
-		if (@changed_pages > 2) {
-			$subject.="$changed_pages[0] $changed_pages[1] etc";
-		}
-		else {
-			$subject.=join(" ", @changed_pages);
-		}
-		$subject.=" by $user";
-
-		my $template=template("notifymail.tmpl");
-		$template->param(
-			wikiname => $config{wikiname},
-			diff => $diff,
-			user => $user,
-			message => $message,
-		);
-		
-		eval q{use Mail::Sendmail};
-		error($@) if $@;
-		foreach my $email (@email_recipients) {
-			sendmail(
-				To => $email,
-				From => "$config{wikiname} <$config{adminemail}>",
-				Subject => $subject,
-				Message => $template->output,
-			) or error("Failed to send update notification mail");
-		}
-	}
+	send_commit_mails(
+		sub {
+			return $message;
+		},
+		sub {
+			`svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`;
+		}, $user, @changed_pages);
 } #}}}
 
 sub rcs_getctime ($) { #{{{