]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Rcs/git.pm
web commit by http://ptecza.myopenid.com/: * Bug report again
[ikiwiki.git] / IkiWiki / Rcs / git.pm
index a1e06c51ce4973c7e0e386a8886ad033728b0bbc..d4d2ec7a943b7c2fd6639dc25555947e3b5ad467 100644 (file)
@@ -165,10 +165,7 @@ sub _parse_diff_tree ($@) { #{{{
        # Identification lines for the commit.
        while (my $line = shift @{ $dt_ref }) {
                # Regexps are semi-stolen from gitweb.cgi.
-               if ($line =~ m/^commit ([0-9a-fA-F]{40})$/) {
-                       $ci{'commit'} = $1;
-               }
-               elsif ($line =~ m/^tree ([0-9a-fA-F]{40})$/) {
+               if ($line =~ m/^tree ([0-9a-fA-F]{40})$/) {
                        $ci{'tree'} = $1;
                }
                elsif ($line =~ m/^parent ([0-9a-fA-F]{40})$/) {
@@ -199,10 +196,14 @@ sub _parse_diff_tree ($@) { #{{{
                }
        }
 
-       debug("No 'tree' or 'parents' seen in diff-tree output")
-           if !defined $ci{'tree'} || !defined $ci{'parents'};
+       debug("No 'tree' seen in diff-tree output") if !defined $ci{'tree'};
 
-       $ci{'parent'} = @{ $ci{'parents'} }[0] if defined $ci{'parents'};
+       if (defined $ci{'parents'}) {
+               $ci{'parent'} = @{ $ci{'parents'} }[0];
+       }
+       else {
+               $ci{'parent'} = 0 x 40;
+       }
 
        # Commit message.
        while (my $line = shift @{ $dt_ref }) {
@@ -366,10 +367,8 @@ sub rcs_recentchanges ($) { #{{{
 
        my @rets;
        foreach my $ci (git_commit_info('HEAD', $num)) {
-               my $title = join("\n", @{$ci->{'comment'}});
-
                # Skip redundant commits.
-               next if ($title eq $dummy_commit_msg);
+               next if (@{$ci->{'comment'}}[0] eq $dummy_commit_msg);
 
                my ($sha1, $when) = (
                        $ci->{'sha1'},
@@ -391,7 +390,7 @@ sub rcs_recentchanges ($) { #{{{
                                diffurl => $diffurl,
                        };
                }
-               push @messages, { line => $title };
+               push @messages, { line => $_ } foreach @{$ci->{'comment'}};
 
                my ($user, $type) = (q{}, "web");
 
@@ -451,7 +450,7 @@ sub rcs_notify () { #{{{
                $message = join "\n", @{ $ci->{'comment'} };
        }
 
-       my $sha1 = $ci->{'commit'};
+       my $sha1 = $ci->{'sha1'};
 
        require IkiWiki::UserInfo;
        send_commit_mails(