>From a6e60819ba512d6bf7376c543f8c40c9389eb4d7 Mon Sep 17 00:00:00 2001 Message-Id: From: Stefano Lattarini Date: Tue, 17 Jan 2012 23:31:19 +0100 Subject: [PATCH] changelog: don't cluster multiple entries under the same "date line" * lib/gitlog-to-changelog: Synced from gnulib. The new version has a new option '--no-cluster', that disables clustering of adjacent commit messages under the same "date line". * Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'. Also add a proper '--format' specification to ensure we have a blank line between the summary line and the commit message body. --- Makefile.am | 3 ++- lib/gitlog-to-changelog | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index bd5b76a..7ad3b92 100644 --- a/Makefile.am +++ b/Makefile.am @@ -110,7 +110,8 @@ INSTALL: lib/INSTALL ## gitlog_to_changelog_command = $(PERL) $(srcdir)/lib/gitlog-to-changelog -gitlog_to_changelog_options = --since='2011-12-28 00:00:00' +gitlog_to_changelog_options = --since='2011-12-28 00:00:00' \ + --no-cluster --format '%s%n%n%b' # Automatic generation of the ChangeLog from git history. # diff --git a/lib/gitlog-to-changelog b/lib/gitlog-to-changelog index 0efedb0..61edde1 100755 --- a/lib/gitlog-to-changelog +++ b/lib/gitlog-to-changelog @@ -3,7 +3,7 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2012-01-06 07:14'; # UTC +my $VERSION = '2012-01-17 21:54'; # 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 @@ -64,6 +64,10 @@ 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. + --no-cluster never cluster commit messages under the same date/author + header; the default is to cluster adjacent commit messages + if their headers are the same and neither commit message + contains multiple paragraphs. --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; @@ -190,6 +194,7 @@ sub parse_amend_file($) my $format_string = '%s%n%b%n'; my $amend_file; my $append_dot = 0; + my $no_cluster = 0; GetOptions ( help => sub { usage 0 }, @@ -198,6 +203,7 @@ sub parse_amend_file($) 'format=s' => \$format_string, 'amend=s' => \$amend_file, 'append-dot' => \$append_dot, + 'no-cluster' => \$no_cluster, ) or usage 1; @@ -302,10 +308,12 @@ sub parse_amend_file($) . substr ($_, 5) . "\n"; } - # If this header would be different from the previous date/name/email/ - # coauthors header, or if this or the previous entry consists of two - # or more paragraphs, then print the header. - if ($date_line ne $prev_date_line + # If clustering of commit messages has been disabled, if this header + # would be different from the previous date/name/email/coauthors header, + # or if this or the previous entry consists of two or more paragraphs, + # then print the header. + if ($no_cluster + or $date_line ne $prev_date_line or "@coauthors" ne "@prev_coauthors" or $multi_paragraph or $prev_multi_paragraph) -- 1.7.7.3