aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-07-31 19:23:54 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-07-31 19:23:54 -0400
commitf7b8f2297cf828ffc3b4175959e3c69fc2db93e2 (patch)
tree7ab0fe66912bef6768f4a9539781cf6161c2948d
parent391c5c2cb58719ca6f7a128e23ec387276c53c62 (diff)
downloadikiwiki-f7b8f2297cf828ffc3b4175959e3c69fc2db93e2.tar
ikiwiki-f7b8f2297cf828ffc3b4175959e3c69fc2db93e2.tar.gz
Add test for old versions of git that don't support --cleanup=verbatim, and munge empty commit messages.
-rw-r--r--IkiWiki/Rcs/git.pm18
-rw-r--r--debian/changelog2
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 <joeyh@debian.org> Tue, 29 Jul 2008 15:53:26 -0400