Hi, On Sun, Oct 30, 2011 at 08:19:43PM +0100, Jim Meyering wrote: [...] > > gitlog-to-changelog: terminate the 1st line of commit message with a dot [...] > I see where you're coming from, and if you make each summary line > start with a capital letter, like a regular sentence, then that makes > sense. However, at least in projects I maintain, I don't capitalize > that way, and deliberately avoid the trailing ".", too.
I've had a look at manually supported ChangeLog files, just to find out no consistency on this subject. For example, in gnulib/ChangeLog and coreutils/ChangeLog-2008 there are "summary" lines which are not capitalized; some of them have trailing ".", others don't. > Sometimes, when I can't fit a description on that first line, > I write part of it, and then a comma, and continue with the summary > in the body of the message. So maybe you want to append the "." > only if there is no other punctuation at the end. Yes, thank you for the idea, I certainly want this behaviour. > Given the lack of leading capital letters in my summary "sentences", > I am reluctant to append a trailing period even in the generated ChangeLog. > However, if you want to add an option to enable the suggested behavior, > that would work. > > Also, if that first line is of length 72, or maybe even 71, some may > not want to add that period, since with the ChangeLog's leading TAB, > it might make it wrap. Indeed. Here is a second edition of the patch; it adds a new option. From 32298efaa0a9647002d372e54a9391aa89172219 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" <l...@altlinux.org> Date: Sun, 30 Oct 2011 22:00:00 +0000 Subject: [PATCH] gitlog-to-changelog: new option --append-dot * build-aux/gitlog-to-changelog: New option --append-dot, makes the first non-blank line of each commit message terminated with a dot. --- ChangeLog | 6 ++++++ build-aux/gitlog-to-changelog | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30cc2af..76d1c64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-10-30 Dmitry V. Levin <l...@altlinux.org> + + gitlog-to-changelog: new option --append-dot. + * build-aux/gitlog-to-changelog: New option --append-dot, makes the + first non-blank line of each commit message terminated with a dot. + 2011-10-29 Dmitry V. Levin <l...@altlinux.org> gitlog-to-changelog: treat a message with only blank lines as empty. diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index a5fd80d..c6e91c3 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -65,6 +65,8 @@ OPTIONS: --format=FMT set format string for commit subject and body; see 'man git-log' for the list of format metacharacters; the default is '%s%n%b%n' + --append-dot append a dot to the first line of each commit message if + there is no other punctuation or a blank symbol at the end. --help display this help and exit --version output version information and exit @@ -102,12 +104,14 @@ sub quoted_cmd(@) { my $since_date = '1970-01-01 UTC'; my $format_string = '%s%n%b%n'; + my $append_dot = 0; GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, 'since=s' => \$since_date, 'format=s' => \$format_string, + 'append-dot' => \$append_dot, ) or usage 1; my @cmd = (qw (git log --log-size), "--since=$since_date", @@ -163,6 +167,17 @@ sub quoted_cmd(@) } else { + if ($append_dot) + { + # If the first line of the message has enough room, then + if (length $line[0] < 72) + { + # append a dot if there is no other punctuation + # or a blank symbol at the end. + $line[0] =~ /[[:punct:]\s]$/ or $line[0] .= "."; + } + } + # Prefix each non-empty line with a TAB. @line = map { length $_ ? "\t$_" : '' } @line; -- ldv
pgpt3muXLrqDN.pgp
Description: PGP signature