diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-01-17 23:31:19 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-01-17 23:53:56 +0100 |
commit | a6e60819ba512d6bf7376c543f8c40c9389eb4d7 (patch) | |
tree | 76034f6b57fb1a2532debc92b34f49cb2095dc4f | |
parent | 443114bf1b15790e0349a087a5673e4de25981ff (diff) | |
download | automake-a6e60819ba512d6bf7376c543f8c40c9389eb4d7.tar.gz |
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.
-rw-r--r-- | Makefile.am | 3 | ||||
-rwxr-xr-x | lib/gitlog-to-changelog | 18 |
2 files changed, 15 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am index bd5b76a06..7ad3b921f 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 0efedb046..61edde1e3 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) |