X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ad9e443f22a139c71f0cd05885cda3e418f27567..1a883b3c504a543c8f4a5b5bb9687e7770f28a4f:/IkiWiki/Plugin/git.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index bdac6f7a1..84df56181 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -365,8 +365,10 @@ sub git_commit_info ($;$) { #{{{ # starting from the given sha1sum. my ($sha1, $num) = @_; - my @raw_lines = run_or_die('git', 'log', - (defined $num ? "--max-count=$num" : ""), + my @opts; + push @opts, "--max-count=$num" if defined $num; + + my @raw_lines = run_or_die('git', 'log', @opts, '--pretty=raw', '--raw', '--abbrev=40', '--always', '-c', '-r', $sha1, '--', '.'); my ($prefix) = run_or_die('git', 'rev-parse', '--show-prefix'); @@ -641,15 +643,6 @@ sub rcs_receive () { #{{{ elsif ($detail->{'status'} =~ /^[AM]+\d*$/) { $action="add"; $mode=$detail->{'mode_to'}; - if (! pagetype($file)) { - eval q{use File::Temp}; - die $@ if $@; - my $fh; - ($fh, $path)=tempfile("XXXXXXXXXX", UNLINK => 1); - if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) { - error("failed writing temp file"); - } - } } elsif ($detail->{'status'} =~ /^[DAM]+\d*/) { $action="remove"; @@ -668,6 +661,18 @@ sub rcs_receive () { #{{{ error gettext("you are not allowed to change file modes"); } } + + # extract attachment to temp file + if (($action eq 'add' || $action eq 'change') && + ! pagetype($file)) { + eval q{use File::Temp}; + die $@ if $@; + my $fh; + ($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1); + if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) { + error("failed writing temp file"); + } + } push @rets, { file => $file, @@ -678,7 +683,7 @@ sub rcs_receive () { #{{{ } } - return @rets; + return reverse @rets; } #}}} 1