From f7b8f2297cf828ffc3b4175959e3c69fc2db93e2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 31 Jul 2008 19:23:54 -0400 Subject: [PATCH 1/1] Add test for old versions of git that don't support --cleanup=verbatim, and munge empty commit messages. --- IkiWiki/Rcs/git.pm | 18 +++++++++++++++--- debian/changelog | 2 ++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index ecf560d0b..1fa9188aa 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -336,11 +336,23 @@ sub rcs_commit_staged ($$$) { $ENV{GIT_AUTHOR_EMAIL}="$u\@web"; } + $message = possibly_foolish_untaint($message); + my @opts; + if ($message !~ /\S/) { + # Force git to allow empty commit messages. + # (If this version of git supports it.) + my ($version)=`git --version` =~ /git version (.*)/; + if ($version ge "1.5.4") { + push @opts, '--cleanup=verbatim'; + } + else { + $message.="."; + } + } + push @opts, '-q'; # git commit returns non-zero if file has not been really changed. # so we should ignore its exit status (hence run_or_non). - $message = possibly_foolish_untaint($message); - if (run_or_non('git', 'commit', '--cleanup=verbatim', - '-q', '-m', $message)) { + if (run_or_non('git', 'commit', @opts, '-m', $message)) { if (length $config{gitorigin_branch}) { run_or_cry('git', 'push', $config{gitorigin_branch}); } diff --git a/debian/changelog b/debian/changelog index af94c99c5..0ad73dd43 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,8 @@ ikiwiki (2.56) UNRELEASED; urgency=low treating it as XHTML. This avoids problems with escaping the end of the CDATA when the htmlscrubber is not used, and it avoids problems with atom XHTML using named entity references that are not in the atom DTD. (Simon McVittie) + * Add test for old versions of git that don't support --cleanup=verbatim, + and munge empty commit messages. -- Joey Hess Tue, 29 Jul 2008 15:53:26 -0400 -- 2.44.0