summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-01-17 23:31:19 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-01-17 23:53:56 +0100
commita6e60819ba512d6bf7376c543f8c40c9389eb4d7 (patch)
tree76034f6b57fb1a2532debc92b34f49cb2095dc4f
parent443114bf1b15790e0349a087a5673e4de25981ff (diff)
downloadautomake-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.am3
-rwxr-xr-xlib/gitlog-to-changelog18
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)