}
sub git_parse_changes {
+ my $reverted = shift;
my @changes = @_;
my ($subdir, $rootdir) = git_find_root();
$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 {
# 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;
}
error gettext("you are not allowed to revert a merge");
}
- my @ret=git_parse_changes(@commits);
+ my @ret=git_parse_changes(1, @commits);
$git_dir=undef;
return @ret;
is not installed. Closes: #637606
* Promote RPC::XML to a Recommends, since it's used by auto-blog.setup.
Closes: #637603
+ * Fix web revert of a file deletion.
-- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2011 11:22:52 -0400
After deleting a page with the "remove" button, it seems that the page deletion cannot be reverted using the "revert" icon in [[RecentChanges]].
It ironically says that "Error: ?$pagename does not exist". See [[http://ikiwiki.info/ikiwiki.cgi?rev=860c2c84d98ea0a38a4f91dacef6d4e09f6e6c2e&do=revert]]. [[JeanPrivat]]
+
+> And it only gets that far if the remove plugin is enabled. Otherwise it
+> complains that you cannot change $pagename.
+>
+> The root bug is that git's `rcs_preprevert` creates a structure that
+> shows the change that was made (which includes a file deletion),
+> not the change that would be made if it was reverted (which includes a
+> file addition). [[Fixed|done]]. --[[Joey]]