Subject: Re: Unify subcommand structure; introduce double dashes for all subcommands?

From: Junio C Hamano <[email-masked]>
Date: Sun, 10 Aug 2014 11:13:44 -0700

Stefan Beller <[email-masked]> writes:

> On 23.07.2014 19:52, Junio C Hamano wrote:
>
>> Sounds familiar.  E.g. here is a similar thread about a year ago.
>> 
>>   http://thread.gmane.org/gmane.comp.version-control.git/231376/focus=231478
>> 
>> Further discussions to make the plan more concrete is very much
>> welcomed.
>> 
>> Thanks.
>> 
>
> So I'd want to add have the subcommands without double dashes ideally.

That is not ideal at all, I am afraid.  A command that started only
with its "primary operating mode", e.g. "git tag [-s|-a] tagname
[object]", may have to gain "I do not want to create, I just want to
list" and the way to signal that has to be an option that cannot be
mistaken as its valid first argument (to avoid "git tag list" that
cannot create a tag called "list", we use "git tag --list").  You
could add an entirely new command "git foo" that always takes the
command-mode word, i.e. "git foo mode$n args", but you will be
typing the operating mode name all the time only to save --mode$n
for 2<=$n, which may not be a good economy in the end.

Please do not go there.