diff options
-rw-r--r-- | IkiWiki.pm | 9 | ||||
-rw-r--r-- | IkiWiki/Plugin/git.pm | 15 | ||||
-rw-r--r-- | debian/changelog | 6 |
3 files changed, 22 insertions, 8 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 1fa89586e..08a3d7875 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -2608,11 +2608,12 @@ sub match_created_after ($$;@) { } sub match_creation_day ($$;@) { + my $page=shift; my $d=shift; if ($d !~ /^\d+$/) { return IkiWiki::ErrorReason->new("invalid day $d"); } - if ((localtime($IkiWiki::pagectime{shift()}))[3] == shift) { + if ((localtime($IkiWiki::pagectime{$page}))[3] == $d) { return IkiWiki::SuccessReason->new('creation_day matched'); } else { @@ -2621,11 +2622,12 @@ sub match_creation_day ($$;@) { } sub match_creation_month ($$;@) { + my $page=shift; my $m=shift; if ($m !~ /^\d+$/) { return IkiWiki::ErrorReason->new("invalid month $m"); } - if ((localtime($IkiWiki::pagectime{shift()}))[4] + 1 == shift) { + if ((localtime($IkiWiki::pagectime{$page}))[4] + 1 == $m) { return IkiWiki::SuccessReason->new('creation_month matched'); } else { @@ -2634,11 +2636,12 @@ sub match_creation_month ($$;@) { } sub match_creation_year ($$;@) { + my $page=shift; my $y=shift; if ($y !~ /^\d+$/) { return IkiWiki::ErrorReason->new("invalid year $y"); } - if ((localtime($IkiWiki::pagectime{shift()}))[5] + 1900 == $y) { + if ((localtime($IkiWiki::pagectime{$page}))[5] + 1900 == $y) { return IkiWiki::SuccessReason->new('creation_year matched'); } else { diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index f8e16859b..f5101d904 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -848,9 +848,20 @@ sub rcs_preprevert ($) { # in order to see all changes. my ($subdir, $rootdir) = git_find_root(); $git_dir=$rootdir; - my @ret=git_parse_changes(git_commit_info($sha1, 1)); + my @commits=git_commit_info($sha1, 1); $git_dir=undef; - return @ret; + + if (! @commits) { + error "unknown commit"; # just in case + } + + # git revert will fail on merge commits. Add a nice message. + if (exists $commits[0]->{parents} && + @{$commits[0]->{parents}} > 1) { + error gettext("you are not allowed to revert a merge"); + } + + return git_parse_changes(@commits); } sub rcs_revert ($) { diff --git a/debian/changelog b/debian/changelog index cee42dc85..b304e4b86 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ -ikiwiki (3.20101020) UNRELEASED; urgency=low +ikiwiki (3.20101023) unstable; urgency=low * Fix typo that broke anonymous git push. - * fix web reversion when the srcdir is in a subdir of the git repo. + * Fix web reversion when the srcdir is in a subdir of the git repo. - -- Joey Hess <joeyh@debian.org> Sat, 23 Oct 2010 15:25:19 -0400 + -- Joey Hess <joeyh@debian.org> Sat, 23 Oct 2010 16:36:50 -0400 ikiwiki (3.20101019) unstable; urgency=low |