From: Junio C Hamano Date: Mon, 17 Aug 2015 19:47:25 GMT Subject: Re: [PATCH 7/7] Add a config option push.gpgSign for default signed pushes Message-ID: In-Reply-To: Junio C Hamano writes: > 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? 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.