gitlog-to-changelog: New option --tear-off.
authorWerner Koch <wk@gnupg.org>
Mon, 12 Dec 2011 19:28:58 +0000 (20:28 +0100)
committerWerner Koch <wk@gnupg.org>
Mon, 12 Dec 2011 19:28:58 +0000 (20:28 +0100)
* scripts/gitlog-to-changelog: Add option --tear-off.
* Makefile.am (gen-ChangeLog): Use that option.

Makefile.am
scripts/gitlog-to-changelog

index 5f9bf2e..49ec3fc 100644 (file)
@@ -116,7 +116,7 @@ gen-ChangeLog:
        if test -d $(top_srcdir)/.git; then                             \
          (cd $(top_srcdir) &&                                          \
            ./scripts/gitlog-to-changelog                               \
-           --append-dot                                                \
+           --append-dot --tear-off                                     \
            --amend=scripts/git-log-fix                                 \
            --since=$(gen_start_date) ) > $(distdir)/cl-t;              \
           cat $(top_srcdir)/scripts/git-log-footer >> $(distdir)/cl-t;  \
index a7ea194..d9f594f 100755 (executable)
@@ -64,6 +64,7 @@ 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.
    --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 +176,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 +185,7 @@ sub parse_amend_file($)
      'format=s' => \$format_string,
      'amend=s' => \$amend_file,
      'append-dot' => \$append_dot,
+     'tear-off' => \$tear_off,
     ) or usage 1;
 
 
@@ -282,13 +285,16 @@ sub parse_amend_file($)
       @line = grep !/^Co-authored-by: /, @line;
 
       # Remove everything after a line with 2 dashes at the beginning.
-      my @tmpline;
-      foreach (@line)
-       {
-         last if /^--\s*$/;
-          push @tmpline,$_;
+      if ($tear_off)
+        {
+           my @tmpline;
+           foreach (@line)
+             {
+              last if /^--\s*$/;
+               push @tmpline,$_;
+             }
+           @line = @tmpline;
         }
-      @line = @tmpline;
 
       # Remove leading and trailing blank lines.
       if (@line)