Subject: Re: git rev-list fails to verify ssh-signed commits (but git log works)

From: Junio C Hamano <[email-masked]>
Date: Wed, 08 Feb 2023 10:20:33 -0800

Junio C Hamano <[email-masked]> writes:

> Jeff King <[email-masked]> writes:
>
>> +	/*
>> +	 * yikes, this needs to come early in the function because it
>> +	 * also handles user.signingkey, which would otherwise get
>> +	 * shunted to git_ident_config() below
>> +	 */
>> +	if (git_gpg_config(var, value, cb) < 0)
>> +		return -1;
>> ...
>>  	if (starts_with(var, "user.") ||
>> ...
>>   3. It's possible some refactoring may let us avoid the "yikes" comment
>>      above (e.g., should user.signingkey just go into the normal ident
>>      config handler?).
>
> Hindsight is golden---if this were called gpg.signingkey we wouldn't
> be having this discussion X-<.

I wonder if gpg-interface functions can and should be taught to
initialize themselves lazily without relying on the usual
git_config(git_gpg_config) sequence.  I.e. the first call to
sign_buffer(), check_signature(), get_signing_key_id(), etc.
would internally make a git_config(git_gpg_config) call, with the
current callers of git_config(git_gpg_config) removed.