----- Original Message -----
> From: "Junio C Hamano" <[email protected]>
> To: "Tigran Mkrtchyan" <[email protected]>
> Cc: "git" <[email protected]>, "Jonathan Nieder" <[email protected]>,
> "Johannes Schindelin"
> <[email protected]>
> Sent: Wednesday, June 5, 2019 10:57:34 PM
> Subject: Re: [PATCH v3] tag: add tag.gpgSign config option to force all tags
> be GPG-signed
> Junio C Hamano <[email protected]> writes:
>
>> "Mkrtchyan, Tigran" <[email protected]> writes:
>>
>>>> But more importantly, I think we should justify why this "not
>>>> allowed" makes sense as the design of the feature. A plausible
>>>> alternative design would simply follow the "last one wins" paradigm,
>>>> ...
>>> This is matter of convention.
>>
>> Oh, if you put it that way, it is quite clear that we should redo
>> this part, as the rest of Git command line processing all pretty
>> much follow "last one wins". I was mostly curious if there was any
>> strong reason why this combination has to be different.
>
> One reason why "last one wins" aka "you have a chance to correct
> yourself" is so useful is because people can then use alias to
> define leading options, e.g. with
>
> [alias] myfoo = foo --option1 --option2 --option3
>
> a user can say "git myfoo" to save typing, but in a rare occasion
> where only options 2 and 3 (but not option 1) are desired, can use
> "git myfoo --no-option1" to countermand it.
>
> Unfortunately, I do not think we can use the same technique for
> options that is given to the "git" potty, e.g. with
>
> [alias] paged-status = --paginate status
>
> you can say "git paged-status" to have your "git status" output sent
> to the pager, but you cannot say "git paged-status --no-pager" to
> defeat that leading option. We may want to find a way to correct
> it, but it is rather low on the priority scale ;-)
Makes sense. Thanks for that use case, which I actually use myself :).
BTW, `--no-sign` currently doesn't affects `-u <key>` in any order:
```
if (keyid) {
opt.sign = 1;
set_signing_key(keyid);
}
```
IOW, `-u <key>` is another way to enable signing, what is, actually,
consistent with man page:
```
-u <keyid>, --local-user=<keyid>
Make a GPG-signed tag, using the given key.
```
I will leave it as-is, I will just describe that tag.gpgSign options
doesn't affect '-u' behavior.
Tigran.