]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
scripts: allow one-line summary to start with "[Vv]ersion \d"
authorJim Meyering <meyering@redhat.com>
Fri, 6 Jan 2012 16:51:52 +0000 (17:51 +0100)
committerJim Meyering <meyering@redhat.com>
Fri, 6 Jan 2012 16:51:52 +0000 (17:51 +0100)
* scripts/git-hooks/commit-msg: Do not reject the commit log
message generated by our automated release-and-tag process.
(bad_first_line): New function, extracted from...
(check_msg): ... here.  Use it.

scripts/git-hooks/commit-msg

index 46382ae1d07e3ca1b512660b6964f1373a668b45..e1bb3820e3c15a8ecb6c339c0f14b75b2f9d4819 100755 (executable)
@@ -52,6 +52,27 @@ sub re_edit($)
     and die "$ME: $log_file: the editor ($editor) failed, aborting\n";
 }
 
+sub bad_first_line($)
+{
+  my ($line) = @_;
+
+  $line =~ /^[Vv]ersion \d/
+    and return '';
+
+  $line =~ /:/
+    or return 'missing colon on first line of log message';
+
+  # The token(s) before the colon on the first line must be on our list
+  # Tokens may be space- or comma-separated.
+  (my $pre_colon = $line) =~ s/:.*//;
+  my @word = split (/[ ,]/, $pre_colon);
+  my @bad = grep !/$valid_regex/, @word;
+  @bad
+    and return 'invalid first word(s) of summary line: ' . join (', ', @bad);
+
+  return '';
+}
+
 # Given a $LOG_FILE name and a \@LINE buffer,
 # read the contents of the file into the buffer and analyze it.
 # If the log message passes muster, return the empty string.
@@ -82,17 +103,9 @@ sub check_msg($$)
   @line == 0
     and return 'no log message';
 
-  # The first line must have a colon or must give a version number.
-  $line[0] =~ /(?::|^[Vv]ersion [0-9])/
-    or return 'missing colon on first line of log message';
-
-  # The token(s) before the colon on the first line must be on our list
-  # Tokens may be space- or comma-separated.
-  (my $pre_colon = $line[0]) =~ s/:.*//;
-  my @word = split (/[ ,]/, $pre_colon);
-  my @bad = grep !/$valid_regex/, @word;
-  @bad
-    and return 'invalid first word(s) of summary line: ' . join (', ', @bad);
+  my $bad = bad_first_line $line[0];
+  $bad
+    and return $bad;
 
   # Second line should be blank or not present.
   2 <= @line && length $line[1]