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 ;-)


Reply via email to