X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/f66eddccc688059fee94b4b7789318e39675d34c..47d179802d5f78365fa7077ae64de35f2892a1e4:/IkiWiki/Rcs/git.pm diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index c816d1bb5..7fb612a39 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 }) { @@ -321,11 +319,12 @@ sub rcs_commit ($$$;$$) { #{{{ return $conflict if defined $conflict; } - # Set the commit author to the web committer. + # Set the commit author and email to the web committer. my %env=%ENV; if (defined $user || defined $ipaddr) { - $ENV{GIT_AUTHOR_NAME}=(defined $user ? $user : $ipaddr)." (web)"; - $ENV{GIT_AUTHOR_EMAIL}=""; + my $u=defined $user ? $user : $ipaddr; + $ENV{GIT_AUTHOR_NAME}=$u; + $ENV{GIT_AUTHOR_EMAIL}="$u\@web"; } # git commit returns non-zero if file has not been really changed. @@ -360,7 +359,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'}, @@ -392,7 +391,7 @@ sub rcs_recentchanges ($) { #{{{ } my $user=$ci->{'author_username'}; - my $web_commit = ($user=~s/\s+\(web\)$//); + my $web_commit = ($ci->{'author'} =~ /\@web>/); # compatability code for old web commit messages if (! $web_commit && @@ -400,6 +399,7 @@ sub rcs_recentchanges ($) { #{{{ $messages[0]->{line} =~ m/$config{web_commit_regexp}/) { $user = defined $2 ? "$2" : "$3"; $messages[0]->{line} = $4; + $web_commit=1; } push @rets, {