X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/8517aa8687fe2d68f380268854929eef18abec14..1572c3c376df36ea09e27a1ea437e3a75cdf0f84:/IkiWiki/Plugin/git.pm diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index cadc69e24..3117e4291 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -762,6 +762,7 @@ sub git_find_root { } sub git_parse_changes { + my $reverted = shift; my @changes = @_; my ($subdir, $rootdir) = git_find_root(); @@ -782,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 { @@ -845,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; } @@ -860,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 } @@ -873,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 ($) {