X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/cadfac387cd2a206a195d4e425536163a5a9a333..c5d9c0d6b641115072137703c61d54229077778a:/IkiWiki/Rcs/git.pm diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 8f75399f8..b5562f0ed 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -165,7 +165,10 @@ 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/^tree ([0-9a-fA-F]{40})$/) { + if ($line =~ m/^commit ([0-9a-fA-F]{40})$/) { + $ci{'commit'} = $1; + } + elsif ($line =~ m/^tree ([0-9a-fA-F]{40})$/) { $ci{'tree'} = $1; } elsif ($line =~ m/^parent ([0-9a-fA-F]{40})$/) { @@ -285,7 +288,9 @@ sub git_sha1 (;$) { #{{{ sub rcs_update () { #{{{ # Update working directory. - run_or_cry('git-pull', $config{gitorigin_branch}); + if (length $config{gitorigin_branch}) { + run_or_cry('git-pull', $config{gitorigin_branch}); + } } #}}} sub rcs_prepedit ($) { #{{{ @@ -333,9 +338,11 @@ sub rcs_commit ($$$;$$) { #{{{ # git-commit(1) returns non-zero if file has not been really changed. # so we should ignore its exit status (hence run_or_non). $message = possibly_foolish_untaint($message); - if (run_or_non('git-commit', '-m', $message, '-i', $file)) { + if (run_or_non('git-commit', '-q', '-m', $message, '-i', $file)) { unlockwiki(); - run_or_cry('git-push', $config{gitorigin_branch}); + if (length $config{gitorigin_branch}) { + run_or_cry('git-push', $config{gitorigin_branch}); + } } return undef; # success @@ -427,12 +434,9 @@ sub rcs_notify () { #{{{ # # Here, we rely on a simple fact: we can extract all parts of the # notification content by parsing the "HEAD" commit (which also - # triggers a refresh of IkiWiki pages) and we can obtain the diff - # by comparing HEAD and HEAD^ (the previous commit). + # triggers a refresh of IkiWiki pages). - my $sha1 = 'HEAD'; # the commit which triggers this action - - my $ci = git_commit_info($sha1); + my $ci = git_commit_info('HEAD'); return if !defined $ci; my @changed_pages = map { $_->{'file'} } @{ $ci->{'details'} }; @@ -447,6 +451,8 @@ sub rcs_notify () { #{{{ $message = join "\n", @{ $ci->{'comment'} }; } + my $sha1 = $ci->{'commit'}; + require IkiWiki::UserInfo; send_commit_mails( sub {