X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=IkiWiki%2FPlugin%2Fgit.pm;h=e8981325357132c109b9160c11a2f0884f1ab8a8;hb=f826251a6d506d6f8a31e30abfbe89338351bd6a;hp=3ccaa446a344f2dee24a4d277c2b803b8a7ff888;hpb=237ea79d715fbba5c1be0b73fbe008b3221975fb;p=ikiwiki.git diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index 3ccaa446a..e89813253 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -794,8 +794,6 @@ sub git_parse_changes { die $@ if $@; my $fh; ($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1); - # Ensure we run this in the right place, - # see comments in rcs_receive. my $cmd = ($no_chdir ? '' : "cd $config{srcdir} && ") . "git show $detail->{sha1_to} > '$path'"; if (system($cmd) != 0) { @@ -836,31 +834,24 @@ sub rcs_receive () { return reverse @rets; } -sub rcs_preprevert (@) { - my %params = @_; - my $rev = $params{rev}; +sub rcs_preprevert ($) { + my $rev=shift; + my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint - # Note test_changes expects 'cgi' and 'session' parameters. - require IkiWiki::Receive; - IkiWiki::Receive::test_changes(%params, changes => - [git_parse_changes(git_commit_info($rev, 1))]); + return git_parse_changes(git_commit_info($sha1, 1)); } -sub rcs_revert (@) { - # Try to revert the given patch; returns undef on _success_. - my %params = @_; - my $rev = $params{rev}; +sub rcs_revert ($) { + # Try to revert the given rev; returns undef on _success_. + my $rev = shift; + my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint - if (run_or_non('git', 'revert', '--no-commit', $rev)) { - debug "Committing revert for patch '$rev'."; - rcs_commit_staged(message => - sprintf(gettext("This reverts commit %s"), $rev), @_); + if (run_or_non('git', 'revert', '--no-commit', $sha1)) { + return undef; } else { - # No idea what is actually getting reverted, so all we can - # do is say we failed. run_or_die('git', 'reset', '--hard'); - return sprintf(gettext("Failed to revert commit %s"), $rev); + return sprintf(gettext("Failed to revert commit %s"), $sha1); } }