diff options
Diffstat (limited to 'build-aux')
| -rwxr-xr-x | build-aux/gitlog-to-changelog | 36 | 
1 files changed, 33 insertions, 3 deletions
| diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index 40a80355..5cf071f6 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -3,13 +3,13 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'      if 0;  # Convert git log output to ChangeLog format. -my $VERSION = '2011-11-02 07:53'; # UTC +my $VERSION = '2012-01-24 15:58 (wk)'; # UTC  # The definition above must lie within the first 8 lines in order  # for the Emacs time-stamp write hook (at end) to update it.  # If you change this file with Emacs, please let the write hook  # do its job.  Otherwise, update this string manually. -# Copyright (C) 2008-2011 Free Software Foundation, Inc. +# Copyright (C) 2008-2012 Free Software Foundation, Inc.  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ my $VERSION = '2011-11-02 07:53'; # UTC  # along with this program.  If not, see <http://www.gnu.org/licenses/>.  # Written by Jim Meyering +# Custom bugs bred by Werner Koch  use strict;  use warnings; @@ -64,6 +65,8 @@ OPTIONS:                    makes a change to SHA1's commit log text or metadata.     --append-dot append a dot to the first line of each commit message if                    there is no other punctuation or blank at the end. +   --tear-off   tear off all commit log lines after a '--' line and +                skip log entry with the first body line being '--'.     --since=DATE convert only the logs since DATE;                    the default is to convert all log entries.     --format=FMT set format string for commit subject and body; @@ -175,6 +178,7 @@ sub parse_amend_file($)    my $format_string = '%s%n%b%n';    my $amend_file;    my $append_dot = 0; +  my $tear_off = 0;    GetOptions      (       help => sub { usage 0 }, @@ -183,6 +187,7 @@ sub parse_amend_file($)       'format=s' => \$format_string,       'amend=s' => \$amend_file,       'append-dot' => \$append_dot, +     'tear-off' => \$tear_off,      ) or usage 1; @@ -201,6 +206,7 @@ sub parse_amend_file($)    my $prev_date_line = '';    my @prev_coauthors = (); +    while (1)      {        defined (my $in = <PIPE>) @@ -214,6 +220,17 @@ sub parse_amend_file($)        $n_read == $log_nbytes          or die "$ME:$.: unexpected EOF\n"; +      # Skip log entries with the default merge commit message. +      $log =~ /^.*\n\nMerge branch '.*\n\s*/ +        and goto SKIPCOMMIT; + +      # Skip log entries if the body starts with a tear off marker. +      if ($tear_off) +        { +          $log =~ /^.*\n\n.*\n--\s*/ +            and goto SKIPCOMMIT; +        } +        # Extract leading hash.        my ($sha, $rest) = split ':', $log, 2;        defined $sha @@ -281,6 +298,18 @@ sub parse_amend_file($)        @line = grep !/^Signed-off-by: .*>$/, @line;        @line = grep !/^Co-authored-by: /, @line; +      # Remove everything after a line with 2 dashes at the beginning. +      if ($tear_off) +        { +           my @tmpline; +           foreach (@line) +             { +	       last if /^--\s*$/; +               push @tmpline,$_; +             } +           @line = @tmpline; +        } +        # Remove leading and trailing blank lines.        if (@line)          { @@ -313,6 +342,7 @@ sub parse_amend_file($)            print "\n", join ("\n", @line), "\n";          } +    SKIPCOMMIT:        defined ($in = <PIPE>)          or last;        $in ne "\n" @@ -339,7 +369,7 @@ sub parse_amend_file($)  # indent-tabs-mode: nil  # eval: (add-hook 'write-file-hooks 'time-stamp)  # time-stamp-start: "my $VERSION = '" -# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M (wk)"  # time-stamp-time-zone: "UTC"  # time-stamp-end: "'; # UTC"  # End: | 
