From: Michael J Gruber <git@drmicha.warpmail.net>
To: Stefan Beller <sbeller@google.com>,
Barry Warsaw <barry@python.org>,
Git Mailing List <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>,
"git@vger.kernel.org" <git@vger.kernel.org>,
David Aguilar <davvid@gmail.com>,
Jacob Keller <jacob.keller@gmail.com>,
Philip Oakley <philipoakley@iee.org>,
Hilco Wijbenga <hilco.wijbenga@gmail.com>,
Graeme Geldenhuys <graemeg@gmail.com>
Subject: Re: Git's inconsistent command line options
Date: Wed, 9 Sep 2015 11:42:54 +0200 [thread overview]
Message-ID: <55EFFF1E.1050409@drmicha.warpmail.net> (raw)
In-Reply-To: <CAGZ79ka4+a_eyha=xCrQFBdLzgbT3ws1Jq7Q=WJw45Ob6bFFug@mail.gmail.com>
Stefan Beller venit, vidit, dixit 01.09.2015 19:56:
> On Tue, Sep 1, 2015 at 10:50 AM, Barry Warsaw <barry@python.org> wrote:
>> On Sep 01, 2015, at 09:42 AM, Junio C Hamano wrote:
>>
>>> That way, you are forcing all the existing scripts to be updated to
>>> say "git -c ..." for _all_ invocations of Git they have, aren't you?
>>
>> No, why? If the default value enables the current ui, then no scripts need
>> changing. Users can enable the new ui for their own benefit at their own
>> pace. If you eventually want to make the new ui the default, provide a
>> sufficient transition period.
>>
>> Cheers,
>> -Barry
>
> So say I am a user who wants to take the new command set. And as I am lazy to
> type it all the time I just do:
>
> $ git config --global command-version 2
>
> Now I have all the new fancy stuff when I type it directly into the terminal.
> But when I run one of the old scripts my coworker gave me (which is used to
> the old notion), it must adhere to the old command world. How do you now figure
> out if this is interactive or script?
You can't. We have that exact same problem already with the recent
option-overriding config bloat. It needs to be solved sooner or later
anyways, by introducing some sort of "mode" (interactive vs. scripting),
since while in principle we have a separation between porcelain and
plumbing commands, we don't have, say, a plumbing version of "git tag"
and take that as an excuse^Wreason for any change to the porcelain
command "git tag". (You can freely interchange the roles here.)
Really, that porcelain-plumbing separation that's often mentioned is
more wishful thinking than actual reality, at least no complete reality,
or else we wouldn't even have any backward compatibility problem to
solve here.
So, UI rework or not, we should think about making that promise real: a
clear separation between a stable scripting interface and an evolving
user interface. Two possible ways are:
- separate commands, such as git-log vs. git-rev-list
- separate modes for the same commands
We use both of them ("interactive" detection for some default settings),
but partially only.
Michael
next prev parent reply other threads:[~2015-09-09 9:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-25 8:01 Git's inconsistent command line options Graeme Geldenhuys
2015-08-25 15:13 ` Junio C Hamano
2015-08-25 21:49 ` Jacob Keller
2015-08-25 22:06 ` Stefan Beller
2015-08-25 22:21 ` Jacob Keller
2015-08-25 23:43 ` Junio C Hamano
2015-08-26 1:30 ` Hilco Wijbenga
2015-08-26 17:56 ` Junio C Hamano
2015-08-26 18:10 ` Jacob Keller
2015-08-26 20:48 ` Junio C Hamano
2015-08-26 22:52 ` Philip Oakley
2015-08-26 23:02 ` Jacob Keller
2015-08-26 23:03 ` Jacob Keller
2015-08-26 4:09 ` Jacob Keller
2015-08-26 6:28 ` Andreas Schwab
2015-08-26 6:33 ` Jacob Keller
2015-08-31 10:10 ` Duy Nguyen
2015-08-31 14:25 ` Barry Warsaw
2015-09-01 9:28 ` David Aguilar
2015-09-01 14:19 ` Barry Warsaw
2015-09-01 16:42 ` Junio C Hamano
2015-09-01 17:50 ` Barry Warsaw
2015-09-01 17:56 ` Stefan Beller
2015-09-09 9:42 ` Michael J Gruber [this message]
2015-09-09 9:42 ` Michael J Gruber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55EFFF1E.1050409@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=barry@python.org \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=graemeg@gmail.com \
--cc=hilco.wijbenga@gmail.com \
--cc=jacob.keller@gmail.com \
--cc=philipoakley@iee.org \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.