git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 1/7] gpg-interface: add new config to select how to sign a commit

From
Jeff King <peff@peff.net>
Date
Jul 16, 2018, 21:38 UTC
Message-ID
<20180716213843.GK25189@sigill.intra.peff.net>
In-Reply-To
<xmqqh8kzszth.fsf@gitster-ct.c.googlers.com>
On Mon, Jul 16, 2018 at 01:14:34PM -0700, Junio C Hamano wrote:
Show 25 quoted lines
> >  #define PGP_SIGNATURE "-----BEGIN PGP SIGNATURE-----"
> > @@ -138,6 +139,12 @@ int git_gpg_config(const char *var, const char *value, void *cb)
> >  		return 0;
> >  	}
> >  
> > +	if (!strcmp(var, "gpg.format")) {
> > +		if (value && strcasecmp(value, "openpgp"))
> > +			return error("malformed value for %s: %s", var, value);
> > +		return git_config_string(&gpg_format, var, value);
> 
> I may be mistaken (sorry, I read so many topics X-<) but I think the
> consensus was to accept only "openpgp" so that we can ensure that
> 
> 	[gpg "openpgp"] program = foo
> 
> etc. can be parsed more naturally without having to manually special
> case the subsection name to be case insensitive.  In other words,
> strcasecmp() should just be strcmp().  Otherwise, people would get a
> wrong expectation that
> 
> 	[gpg] format = OpenPGP
> 	[gpg "openpgp"] program = foo
> 
> should refer to the same and single OpenPGP, but that would violate
> the usual configuration syntax rules.

I was the one who argued the other way. But unless we are going to move to a two-level config for all of it (i.e., gpg.openPGPProgram), I think what you suggest here is the sanest way forward.

Show 13 quoted lines
> The structure of checking the error looks quite suboptimal even when
> we initially support the single "openpgp" at this step.  I would
> have expected you to be writing the above like so:
> 
> 	if (!value)
> 		return config_error_nonbool(var);
> 	if (strcmp(value, "openpgp"))
> 		return error("unsupported value for %s: %s", var, value);
> 	return git_config_string(...);
> 
> That would make it more clear that the variable is "nonbool", which
> does not change across additional support for new formats in later
> steps.
Agreed.
-Peff
Previous: Junio C HamanoNext: Henning Schild
Message 6 of 19 in “X509 (gpgsm) commit signing support”
  1. 0/7 X509 (gpgsm) commit signing supportHenning Schild, Jul 13, 2018
  2. 2/7 t/t7510: check the validation of the new config gpg.formatHenning Schild, Jul 13, 2018
  3. Junio C HamanoJul 16, 2018
  4. 1/7 gpg-interface: add new config to select how to sign a commitHenning Schild, Jul 13, 2018
  5. Junio C HamanoJul 16, 2018
  6. Jeff KingJul 16, 2018
  7. Henning SchildJul 17, 2018
  8. brian m. carlsonJul 17, 2018
  9. Jeff KingJul 17, 2018
  10. 4/7 gpg-interface: do not hardcode the key string len anymoreHenning Schild, Jul 13, 2018
  11. Junio C HamanoJul 16, 2018
  12. 3/7 gpg-interface: introduce an abstraction for multiple gpg formatsHenning Schild, Jul 13, 2018
  13. Junio C HamanoJul 16, 2018
  14. Henning SchildJul 17, 2018
  15. 5/7 gpg-interface: introduce new config to select per gpg format programHenning Schild, Jul 13, 2018
  16. Junio C HamanoJul 16, 2018
  17. Henning SchildJul 17, 2018
  18. 6/7 gpg-interface: introduce new signature format "x509" using gpgsmHenning Schild, Jul 13, 2018
  19. 7/7 gpg-interface t: extend the existing GPG tests with GPGSMHenning Schild, Jul 13, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.