threads / bug / 47976

[Bug] git log --show-signature print extra carriage return ^M

Subject: [Bug] git log --show-signature print extra carriage return ^M

## tl;dr

4 messages between Mar 4, 2018 and Apr 28, 2018.

replies: 3people: 2as markdown or json

Larry Hunter· Mar 4, 2018, 17:09 UTC · lore
There is bug using "git log --show-signature" in my installation
    git 2.16.2.windows.1
    gpg (GnuPG) 2.2.4
    libgcrypt 1.8.2

that prints (with colors) an extra ^M (carriage return?) at the end of the gpg lines. As an example, the output of "git log --show-signature HEAD" looks like:

    $ git log --show-signature HEAD
    commit 46c490188ebd216f20c454ee61108e51b481844e (HEAD -> master)
    gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale^M
    gpg:                using RSA key ...^M
    gpg: Good signature from "..." [ultimate]^M
    Author: ... <...>
    Date:   Sun Mar 4 16:53:06 2018 +0100
    ...

To help find a fix, I tested the command "git verify-commit HEAD" that prints (without colors) the same lines without extra ^M characters.

    $ git verify-commit HEAD
    gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale
    gpg:                using RSA key ...
    gpg: Good signature from "..." [ultimate]

Thanks, Larry

Johannes Schindelin· Mar 5, 2018, 14:29 UTC · re: Larry Hunter · lore

Re: [Bug] git log --show-signature print extra carriage return ^M

Hi Larry,
On Sun, 4 Mar 2018, Larry Hunter wrote:
Show 5 quoted lines
> There is bug using "git log --show-signature" in my installation
> 
>     git 2.16.2.windows.1
>     gpg (GnuPG) 2.2.4
>     libgcrypt 1.8.2
The gpg.exe shipped in Git for Windows should say something like this:
	$ gpg --version
	gpg (GnuPG) 1.4.22
	Copyright (C) 2015 Free Software Foundation, Inc.
	License GPLv3+: GNU GPL version 3 or later
	<http://gnu.org/licenses/gpl.html>
	This is free software: you are free to change and redistribute it.
	There is NO WARRANTY, to the extent permitted by law.
	Home: ~/.gnupg
	Supported algorithms:
	Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
	Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
		CAMELLIA128, CAMELLIA192, CAMELLIA256
	Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
	Compression: Uncompressed, ZIP, ZLIB, BZIP2

Therefore, the GNU Privacy Guard version you use is not the one shipped and supported by the Git for Windows project.

Show 20 quoted lines
> that prints (with colors) an extra ^M (carriage return?) at the end of
> the gpg lines. As an example, the output of "git log --show-signature
> HEAD" looks like:
> 
>     $ git log --show-signature HEAD
>     commit 46c490188ebd216f20c454ee61108e51b481844e (HEAD -> master)
>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale^M
>     gpg:                using RSA key ...^M
>     gpg: Good signature from "..." [ultimate]^M
>     Author: ... <...>
>     Date:   Sun Mar 4 16:53:06 2018 +0100
>     ...
> 
> To help find a fix, I tested the command "git verify-commit HEAD" that
> prints (without colors) the same lines without extra ^M characters.
> 
>     $ git verify-commit HEAD
>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale
>     gpg:                using RSA key ...
>     gpg: Good signature from "..." [ultimate]

My guess is that the latter command simply does not go through the pager while the former does.

Do you see the ^M in the output of `git -p verify-commit HEAD`?

Ciao, Johannes

Larry Hunter· Mar 6, 2018, 09:47 UTC · re: Johannes Schindelin · lore

Re: [Bug] git log --show-signature print extra carriage return ^M

The same ^M is shown in the output of tutorial
    https://www.geekality.net/2017/08/23/setting-up-gpg-signing-for-gitgithub-on-windows/
at item "4. Verify commit was signed"
I confirm the output is right (no ^M characters) with commands
    git verify-commit HEAD
    git -p verify-commit HEAD
    git verify-commit --v HEAD
    git verify-commit --raw HEAD
and wrong (ending with ^M characters) with
    git  log --show-signature -1 HEAD
    git  -p log --show-signature -1 HEAD

I need gpg version 2.1 or greater to generate a gpg key for my windows system, as stated by the github documentation:

    https://help.github.com/articles/generating-a-new-gpg-key/
that saves my keys in ~/AppData/Roaming/GnuPG.
2018-03-05 15:29 GMT+01:00 Johannes Schindelin <Johannes.Schindelin@gmx.de>:
Show 59 quoted lines
> Hi Larry,
>
> On Sun, 4 Mar 2018, Larry Hunter wrote:
>
>> There is bug using "git log --show-signature" in my installation
>>
>>     git 2.16.2.windows.1
>>     gpg (GnuPG) 2.2.4
>>     libgcrypt 1.8.2
>
> The gpg.exe shipped in Git for Windows should say something like this:
>
>         $ gpg --version
>         gpg (GnuPG) 1.4.22
>         Copyright (C) 2015 Free Software Foundation, Inc.
>         License GPLv3+: GNU GPL version 3 or later
>         <http://gnu.org/licenses/gpl.html>
>         This is free software: you are free to change and redistribute it.
>         There is NO WARRANTY, to the extent permitted by law.
>
>         Home: ~/.gnupg
>         Supported algorithms:
>         Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
>         Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
>                 CAMELLIA128, CAMELLIA192, CAMELLIA256
>         Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
>         Compression: Uncompressed, ZIP, ZLIB, BZIP2
>
> Therefore, the GNU Privacy Guard version you use is not the one shipped
> and supported by the Git for Windows project.
>
>> that prints (with colors) an extra ^M (carriage return?) at the end of
>> the gpg lines. As an example, the output of "git log --show-signature
>> HEAD" looks like:
>>
>>     $ git log --show-signature HEAD
>>     commit 46c490188ebd216f20c454ee61108e51b481844e (HEAD -> master)
>>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale^M
>>     gpg:                using RSA key ...^M
>>     gpg: Good signature from "..." [ultimate]^M
>>     Author: ... <...>
>>     Date:   Sun Mar 4 16:53:06 2018 +0100
>>     ...
>>
>> To help find a fix, I tested the command "git verify-commit HEAD" that
>> prints (without colors) the same lines without extra ^M characters.
>>
>>     $ git verify-commit HEAD
>>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale
>>     gpg:                using RSA key ...
>>     gpg: Good signature from "..." [ultimate]
>
> My guess is that the latter command simply does not go through the pager
> while the former does.
>
> Do you see the ^M in the output of `git -p verify-commit HEAD`?
>
> Ciao,
> Johannes
Johannes Schindelin· Apr 28, 2018, 12:18 UTC · re: Larry Hunter · lore

Re: [Bug] git log --show-signature print extra carriage return ^M

Hi Larry,
On Tue, 6 Mar 2018, Larry Hunter wrote:
Show 5 quoted lines
> The same ^M is shown in the output of tutorial
> 
>     https://www.geekality.net/2017/08/23/setting-up-gpg-signing-for-gitgithub-on-windows/
> 
> at item "4. Verify commit was signed"

Please understand that it would be helpful if you could take the lead on resolving this issue.

If you need pointers how to get started with fixing this behavior, please just tell us where you got stuck, so we can help you get un-stuck.

Ciao, Johannes

Show 80 quoted lines
> I confirm the output is right (no ^M characters) with commands
> 
>     git verify-commit HEAD
>     git -p verify-commit HEAD
>     git verify-commit --v HEAD
>     git verify-commit --raw HEAD
> 
> and wrong (ending with ^M characters) with
> 
>     git  log --show-signature -1 HEAD
>     git  -p log --show-signature -1 HEAD
> 
> I need gpg version 2.1 or greater to generate a gpg key for my windows
> system, as stated by the github documentation:
> 
>     https://help.github.com/articles/generating-a-new-gpg-key/
> 
> that saves my keys in ~/AppData/Roaming/GnuPG.
> 
> 2018-03-05 15:29 GMT+01:00 Johannes Schindelin <Johannes.Schindelin@gmx.de>:
> > Hi Larry,
> >
> > On Sun, 4 Mar 2018, Larry Hunter wrote:
> >
> >> There is bug using "git log --show-signature" in my installation
> >>
> >>     git 2.16.2.windows.1
> >>     gpg (GnuPG) 2.2.4
> >>     libgcrypt 1.8.2
> >
> > The gpg.exe shipped in Git for Windows should say something like this:
> >
> >         $ gpg --version
> >         gpg (GnuPG) 1.4.22
> >         Copyright (C) 2015 Free Software Foundation, Inc.
> >         License GPLv3+: GNU GPL version 3 or later
> >         <http://gnu.org/licenses/gpl.html>
> >         This is free software: you are free to change and redistribute it.
> >         There is NO WARRANTY, to the extent permitted by law.
> >
> >         Home: ~/.gnupg
> >         Supported algorithms:
> >         Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
> >         Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
> >                 CAMELLIA128, CAMELLIA192, CAMELLIA256
> >         Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
> >         Compression: Uncompressed, ZIP, ZLIB, BZIP2
> >
> > Therefore, the GNU Privacy Guard version you use is not the one shipped
> > and supported by the Git for Windows project.
> >
> >> that prints (with colors) an extra ^M (carriage return?) at the end of
> >> the gpg lines. As an example, the output of "git log --show-signature
> >> HEAD" looks like:
> >>
> >>     $ git log --show-signature HEAD
> >>     commit 46c490188ebd216f20c454ee61108e51b481844e (HEAD -> master)
> >>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale^M
> >>     gpg:                using RSA key ...^M
> >>     gpg: Good signature from "..." [ultimate]^M
> >>     Author: ... <...>
> >>     Date:   Sun Mar 4 16:53:06 2018 +0100
> >>     ...
> >>
> >> To help find a fix, I tested the command "git verify-commit HEAD" that
> >> prints (without colors) the same lines without extra ^M characters.
> >>
> >>     $ git verify-commit HEAD
> >>     gpg: Signature made 03/04/18 16:53:06 ora solare Europa occidentale
> >>     gpg:                using RSA key ...
> >>     gpg: Good signature from "..." [ultimate]
> >
> > My guess is that the latter command simply does not go through the pager
> > while the former does.
> >
> > Do you see the ^M in the output of `git -p verify-commit HEAD`?
> >
> > Ciao,
> > Johannes
> 

← back to recent threads