Re: Commit hashes in ChangeLog.

2021-05-12 Thread David Levine
Ralph wrote:

> I think this change fixes both things and restores the commit-hash
> removal, which you originally added.

> Happy for me to commit?

Quite.  First-rate detective work.  Yes, I do have git configured to add
color in this situation.  I did take a run at sed but without the C locale,
didn't get very far.

Thanks!

David



Re: Commit hashes in ChangeLog.

2021-05-12 Thread Ralph Corderoy
Hi David,

> commit 9fd3638e971f661fb3af78c2aef003d17aa31798
> Author: David Levine 
> Date:   Tue May 11 20:05:03 2021 -0400
>
>     Leave commit hashes in ChangeLog.
> 
> With newer git, the yellow commit hashes slipped by the grep anyway.
> And grep tripped over an ISO8859 ü in the slocal.c log.

The diff:

--- Makefile.am
+++ Makefile.am
@@ -1263,10 +1263,8 @@ cleanman:
 
 .PHONY: man cleanman
 
-## Don't include commit hashes in ChangeLog.
 ChangeLog:
-   @[ -d $(srcdir)/.git ]  &&  (cd $(srcdir); git --no-pager log 
--abbrev-commit | \
-   egrep -v '^commit [0-9a-f]+$$' > $@)  ||  true
+   @[ -d $(srcdir)/.git ]  &&  (cd $(srcdir); git log --abbrev-commit 
> $@)  ||  true
 ## Make ChangeLog phony so it will always get regenerated.  But don't
 ## fail if we don't have a git repository in order to allow
 ## regeneration of distribution archive or RPM.
$ 

I'm surprised yellow appears from ‘git --no-pager log --abbrev-commit’
when piped into something unless a personal ‘--color’ option is
insisting it occur even when stdout isn't a terminal?

I see the ‘ü’ you mention.  It does seem to cause egrep to delete the
line and add a ‘Binary file (standard input) matches’ matches.

$ iconv -t iso-8859-1 <<<ü | sed -n l
\374$
$ C G log | C g -B1 -A3 $'\374'
used slocal could perform the action even if the previous
action failed.  Debian bug report #149745, filed by Daniel M�ller.

commit f292123e4a8ff7bf829d2954ec838f677043ebd4
Author: Glenn Burkhardt 
$ 
$ g -A2 'slocal could perform the action' ChangeLog | sed -n l
used slocal could perform the action even if the previous$
$
Author: Glenn Burkhardt $
$

I think this change fixes both things and restores the commit-hash
removal, which you originally added.

--- Makefile.am
+++ Makefile.am
@@ -1263,8 +1263,16 @@ cleanman:
 
 .PHONY: man cleanman
 
+## Don't include commit hashes in ChangeLog.
+## Fix ISO-8859-1 encoding of ‘ü’ in uip/slocal.c's log.
 ChangeLog:
-   @[ -d $(srcdir)/.git ]  &&  (cd $(srcdir); git log --abbrev-commit 
> $@)  ||  true
+   @[ -d $(srcdir)/.git ]  &&  ( \
+   cd $(srcdir); \
+   git --no-pager log --no-color --abbrev-commit | \
+LC_ALL=C sed \
+   -e '/^commit [0-9a-f][0-9a-f]*$$/d' \
+   -e '/149745/s/M.ller/Müller/' >$@ \
+   )  ||  true
 ## Make ChangeLog phony so it will always get regenerated.  But don't
 ## fail if we don't have a git repository in order to allow
 ## regeneration of distribution archive or RPM.
$ 

Happy for me to commit?

-- 
Cheers, Ralph.