X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/4fb26f4e60f2df282fc972e4b8506ccd306de789..ceacee1c17ca0bd32d5056d9a19be335c7b60cf9:/IkiWiki/Plugin/git.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index 52b2bbd50..3117e4291 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -679,6 +679,7 @@ sub rcs_diff ($;$) { return if defined $maxlines && @lines == $maxlines; push @lines, $line."\n" if (@lines || $line=~/^diff --git/); + return 1; }; safe_git(undef, $addlines, "git", "show", $sha1); if (wantarray) { @@ -761,6 +762,7 @@ sub git_find_root { } sub git_parse_changes { + my $reverted = shift; my @changes = @_; my ($subdir, $rootdir) = git_find_root(); @@ -781,11 +783,11 @@ sub git_parse_changes { $mode=$detail->{'mode_to'}; } elsif ($detail->{'status'} =~ /^[AM]+\d*$/) { - $action="add"; + $action= $reverted ? "remove" : "add"; $mode=$detail->{'mode_to'}; } elsif ($detail->{'status'} =~ /^[DAM]+\d*/) { - $action="remove"; + $action= $reverted ? "add" : "remove"; $mode=$detail->{'mode_from'}; } else { @@ -844,7 +846,7 @@ sub rcs_receive () { # it and only see changes in it.) # The pre-receive hook already puts us in the right place. $git_dir="."; - push @rets, git_parse_changes(git_commit_info($oldrev."..".$newrev)); + push @rets, git_parse_changes(0, git_commit_info($oldrev."..".$newrev)); $git_dir=undef; } @@ -859,9 +861,8 @@ sub rcs_preprevert ($) { # in order to see all changes. my ($subdir, $rootdir) = git_find_root(); $git_dir=$rootdir; - my @commits=git_commit_info($sha1, 1); - $git_dir=undef; + my @commits=git_commit_info($sha1, 1); if (! @commits) { error "unknown commit"; # just in case } @@ -872,7 +873,10 @@ sub rcs_preprevert ($) { error gettext("you are not allowed to revert a merge"); } - return git_parse_changes(@commits); + my @ret=git_parse_changes(1, @commits); + + $git_dir=undef; + return @ret; } sub rcs_revert ($) {