Subject: Re: [PATCH 7/7] Add a config option push.gpgSign for default signed pushes

From: Junio C Hamano <[email-masked]>
Date: Mon, 17 Aug 2015 12:47:25 -0700

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

> Dave Borowitz <[email-masked]> writes:
>
>> The issue is that if both _ALWAYS and _IF_POSSIBLE are set,
>> git_transport_push interprets it as _ALWAYS. But, we are also supposed
>> to prefer explicit command-line options to config values.
>>
>> Suppose we parsed config first, then options. If the user has
>> push.signed = always and and passes --signed-if-possible, then the end
>> result is (_ALWAYS | _IF_POSSIBLE), aka always,...
>
> Doesn't that merely suggest that the option parsing is implemented
> incorrectly?  Why is --signed-if-possible just ORing its bits into
> the flag, instead of clearing and setting?

That is, "git config alias.myp push --sign=if-asked" followed by

    $ git myp --sign=no

would internally expand to

    $ git push --sign=if-asked --sign=no

and the result should follow the usual "last one wins" rule.