}
} #}}}
-sub rcs_commit ($$$) { #{{{
+sub rcs_commit ($$$;$$) { #{{{
# Tries to commit the page; returns undef on _success_ and
# a version of the page with the rcs's conflict markers on failure.
# The file is relative to the srcdir.
my $file=shift;
my $message=shift;
my $rcstoken=shift;
+ my $user=shift;
+ my $ipaddr=shift;
+
+ if (defined $user) {
+ $message="web commit by $user".(length $message ? ": $message" : "");
+ }
+ elsif (defined $ipaddr) {
+ $message="web commit from $ipaddr".(length $message ? ": $message" : "");
+ }
if (-d "$config{srcdir}/.svn") {
# Check to see if the page has been changed by someone
eval q{
use Date::Parse;
- use Time::Duration;
use XML::SAX;
use XML::Simple;
};
sub rcs_notify () { #{{{
if (! exists $ENV{REV}) {
- error("REV is not set, not running from svn post-commit hook, cannot send notifications");
+ error(gettext("REV is not set, not running from svn post-commit hook, cannot send notifications"));
}
my $rev=int(possibly_foolish_untaint($ENV{REV}));
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";
+ $message=$4;
+ }
my @changed_pages;
foreach my $change (`svnlook changed $config{svnrepo} -r $rev`) {
require IkiWiki::UserInfo;
send_commit_mails(
sub {
- my $message=`svnlook log $config{svnrepo} -r $rev`;
- if ($message=~/$config{web_commit_regexp}/) {
- $user=defined $2 ? "$2" : "$3";
- $message=$4;
- }
return $message;
},
sub {