diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-17 16:53:54 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-17 16:53:54 -0400 |
commit | 1b318dacbda00d05566f300bb4a69cd913ce0e71 (patch) | |
tree | 1b8f4d5091eeb1e30624d2f8a03074fc3d355d02 | |
parent | f66eddccc688059fee94b4b7789318e39675d34c (diff) | |
download | ikiwiki-1b318dacbda00d05566f300bb4a69cd913ce0e71.tar ikiwiki-1b318dacbda00d05566f300bb4a69cd913ce0e71.tar.gz |
git: Fix parsing of git logs with no commit messages at all.
-rw-r--r-- | IkiWiki/Rcs/git.pm | 14 | ||||
-rw-r--r-- | debian/changelog | 1 |
2 files changed, 7 insertions, 8 deletions
diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index c816d1bb5..26f2a39f2 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -197,7 +197,7 @@ sub _parse_diff_tree ($@) { #{{{ } debug("No 'tree' seen in diff-tree output") if !defined $ci{'tree'}; - + if (defined $ci{'parents'}) { $ci{'parent'} = @{ $ci{'parents'} }[0]; } @@ -205,15 +205,13 @@ sub _parse_diff_tree ($@) { #{{{ $ci{'parent'} = 0 x 40; } - # Commit message. - while (my $line = shift @{ $dt_ref }) { - if ($line =~ m/^$/) { - # Trailing empty line signals next section. - last; - }; + # Commit message (optional). + while ($dt_ref->[0] =~ /^ /) { + my $line = shift @{ $dt_ref }; $line =~ s/^ //; push @{ $ci{'comment'} }, $line; } + shift @{ $dt_ref } if $dt_ref->[0] =~ /^$/; # Modified files. while (my $line = shift @{ $dt_ref }) { @@ -360,7 +358,7 @@ sub rcs_recentchanges ($) { #{{{ my @rets; foreach my $ci (git_commit_info('HEAD', $num)) { # Skip redundant commits. - next if (@{$ci->{'comment'}}[0] eq $dummy_commit_msg); + next if ($ci->{'comment'} && @{$ci->{'comment'}}[0] eq $dummy_commit_msg); my ($sha1, $when) = ( $ci->{'sha1'}, diff --git a/debian/changelog b/debian/changelog index 16b352766..123721741 100644 --- a/debian/changelog +++ b/debian/changelog @@ -31,6 +31,7 @@ ikiwiki (2.54) UNRELEASED; urgency=low * git: Put web committer name/openid/address in the git author field. The committer's email address is not used (because leaking email addresses is not liked by many users). Closes: #451023 + * git: Fix parsing of git logs with no commit messages at all. [ Simon McVittie ] * meta, inline: Support guid options, to allow forcing a particular url or |