Re: [PATCH v2] gpg-interface: use more status letters
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 6, 2016, 21:43 UTC
- Message-ID
- <xmqqk2dli25w.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqq60pdbbxh.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 7 quoted lines
> Michael J Gruber <git@drmicha.warpmail.net> writes: > >> Also, I'm open to using another letter for EXPKEYSIG but couldn't decide >> between 'Y', 'Z', 'K'. 'K' could be confused with REVKEYSIG, I'm afraid. >> 'Y' is next to 'X' and contained in 'KEY', it would be my first choice. > > Sounds good enough to me. Thanks.
I really do not want to leave too many topics listed in the "What's cooking" report to be in undecided / waiting state. How about squashing this in, with a fully updated log message to replace?
-- >8 -- From: Michael J Gruber <git@drmicha.warpmail.net> Date: Wed, 28 Sep 2016 16:24:13 +0200 Subject: [PATCH] SQUASH: gpg-interface: use more status letters
According to gpg2's doc/DETAILS:
For each signature only one of the codes GOODSIG, BADSIG,
EXPSIG, EXPKEYSIG, REVKEYSIG or ERRSIG will be emitted.gpg1 ("classic") behaves the same (although doc/DETAILS differs).Currently, we parse gpg's status output for GOODSIG, BADSIG and trust information and translate that into status codes G, B, U, N for the %G? format specifier.
git-verify-* returns success in the GOODSIG case only. This is somewhat in disagreement with gpg, which considers the first 5 of the 6 above as VALIDSIG, but we err on the very safe side.
Introduce additional status codes E, X, Y, R for ERRSIG, EXPSIG, EXPKEYSIG, and REVKEYSIG so that a user of %G? gets more information about the absence of a 'G' on first glance.
Requested-by: Alex <agrambot@gmail.com> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> --- Documentation/pretty-formats.txt | 3 ++- gpg-interface.c | 2 +- pretty.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index c28ff2b919..179c9389aa 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -146,7 +146,8 @@ endif::git-rev-list[] - '%G?': show "G" for a good (valid) signature, "B" for a bad signature, "U" for a good signature with unknown validity, - "X" for a good expired signature, or good signature made by an expired key, + "X" for a good signature that has expired, + "Y" for a good signature made by an expired key, "R" for a good signature made by a revoked key, "E" if the signature cannot be checked (e.g. missing key) and "N" for no signature diff --git a/gpg-interface.c b/gpg-interface.c index 6999e7b469..e44cc27da1 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -35,7 +35,7 @@ static struct { { 'U', "\n[GNUPG:] TRUST_UNDEFINED" }, { 'E', "\n[GNUPG:] ERRSIG "}, { 'X', "\n[GNUPG:] EXPSIG "}, - { 'X', "\n[GNUPG:] EXPKEYSIG "}, + { 'Y', "\n[GNUPG:] EXPKEYSIG "}, { 'R', "\n[GNUPG:] REVKEYSIG "}, }; diff --git a/pretty.c b/pretty.c index 39a36cd825..f98b271069 100644 --- a/pretty.c +++ b/pretty.c @@ -1236,6 +1236,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */ case 'U': case 'N': case 'X': + case 'Y': case 'R': strbuf_addch(sb, c->signature_check.result); }
-- 2.10.1-520-ge127bfd383