X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/b8887c1cd7d3134561f0d99ffdcc75d7bf63e234..5693776ae4f48ee55ea4affa9c060a95dcc4b1be:/IkiWiki/Rcs/git.pm diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index a9efbb092..d4d2ec7a9 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -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 }) { @@ -258,7 +259,7 @@ sub git_commit_info ($;$) { #{{{ $num ||= 1; my @raw_lines = run_or_die('git', 'log', "--max-count=$num", - '--pretty=raw', '--raw', '--abbrev=40', '--always', '-m', + '--pretty=raw', '--raw', '--abbrev=40', '--always', '-c', '-r', $sha1, '--', '.'); my ($prefix) = run_or_die('git', 'rev-parse', '--show-prefix'); @@ -366,10 +367,8 @@ sub rcs_recentchanges ($) { #{{{ my @rets; foreach my $ci (git_commit_info('HEAD', $num)) { - my $title = @{ $ci->{'comment'} }[0]; - # 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"); @@ -412,7 +411,7 @@ sub rcs_recentchanges ($) { #{{{ when => $when, message => [@messages], pages => [@pages], - }; + } if @pages; last if @rets >= $num; } @@ -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(