Add test for old versions of git that don't support --cleanup=verbatim, and munge...
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 31 Jul 2008 23:23:54 +0000 (19:23 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 31 Jul 2008 23:23:54 +0000 (19:23 -0400)
IkiWiki/Rcs/git.pm
debian/changelog

index ecf560d0ba8dc09edf2c48da59eddd0cfe864143..1fa9188aa3c29fbfa35065382bb0c92ef5eb25b8 100644 (file)
@@ -336,11 +336,23 @@ sub rcs_commit_staged ($$$) {
                $ENV{GIT_AUTHOR_EMAIL}="$u\@web";
        }
 
                $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).
        # 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});
                }
                if (length $config{gitorigin_branch}) {
                        run_or_cry('git', 'push', $config{gitorigin_branch});
                }
index af94c99c59872b954696f0c2c9f518cf5e3b916e..0ad73dd43812e4006dfec4033f97a2e4412e7bab 100644 (file)
@@ -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)
     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
 
 
  -- Joey Hess <joeyh@debian.org>  Tue, 29 Jul 2008 15:53:26 -0400