]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Rcs/svn.pm
git: Fix parsing of git logs with no commit messages at all.
[git.ikiwiki.info.git] / IkiWiki / Rcs / svn.pm
index a32b0a8403a1b0d184748a3867e34da4285d165e..6a822e896cd79951d3d0a4fdc1dd3e4a4e9c3b9e 100644 (file)
@@ -1,12 +1,12 @@
 #!/usr/bin/perl
 
+package IkiWiki::Rcs::svn;
+
 use warnings;
 use strict;
 use IkiWiki;
 use POSIX qw(setlocale LC_CTYPE);
 
-package IkiWiki::Rcs::svn;
-
 sub import { #{{{
        if (exists $IkiWiki::config{svnpath}) {
                # code depends on the path not having extraneous slashes
@@ -171,7 +171,7 @@ sub rcs_recentchanges ($) { #{{{
                my $rev = $logentry->{revision};
                my $user = $logentry->{author};
 
-               my $when=time - str2time($logentry->{date}, 'UTC');
+               my $when=str2time($logentry->{date}, 'UTC');
 
                foreach my $msgline (split(/\n/, $logentry->{msg})) {
                        push @message, { line => $msgline };
@@ -204,7 +204,7 @@ sub rcs_recentchanges ($) { #{{{
                        } if length $file;
                }
                push @ret, {
-                       id => $rev,
+                       rev => $rev,
                        user => $user,
                        committype => $committype,
                        when => $when,
@@ -217,42 +217,9 @@ sub rcs_recentchanges ($) { #{{{
        return @ret;
 } #}}}
 
-sub rcs_notify () { #{{{
-       if (! exists $ENV{REV}) {
-               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`) {
-               chomp $change;
-               if (length $config{svnpath}) {
-                       if ($change =~ /^[A-Z]+\s+\Q$config{svnpath}\E\/(.*)/) {
-                               push @changed_pages, $1;
-                       }
-               }
-               else {
-                       push @changed_pages, $change;
-               }
-       }
-       
-       require IkiWiki::UserInfo;
-       send_commit_mails(
-               sub {
-                       return $message;
-               },
-               sub {
-                       `svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`;
-               }, $user, @changed_pages);
+sub rcs_diff ($) { #{{{
+       my $rev=possibly_foolish_untaint(int(shift));
+       return `svnlook diff $config{svnrepo} -r$rev --no-diff-deleted`;
 } #}}}
 
 sub rcs_getctime ($) { #{{{