From: Dave Borowitz Date: Mon, 17 Aug 2015 19:49:31 GMT Subject: Re: [PATCH 7/7] Add a config option push.gpgSign for default signed pushes Message-ID: In-Reply-To: On Mon, Aug 17, 2015 at 3:42 PM, Junio C Hamano wrote: > > Dave Borowitz 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? Yes, that would be incorrect, but the actual implementation in my patch is not incorrect, it just solves the problem a different way. The alternative I suggested is another correct implementation, and it sounds like it's more in line with the convention you expect. I'll go with that.