Subject: Re: [PATCH 0/8] builtin/config: introduce subcommands

From: Junio C Hamano <[email-masked]>
Date: Wed, 06 Mar 2024 09:06:08 -0800

Patrick Steinhardt <[email-masked]> writes:

>   - `git config foo.bar` -> `git config get foo.bar`
>
>   - `git config foo.bar value` -> `git config set foo.bar value`

I actually have been perfectly OK with the above two, but I agree
that ...

>   - `git config foo.bar value value-pattern` -> `git config set-all
>     foo.bar value value-pattern`

... this was less than discoverable, and would be a good update.
This one ...

>   - `git config --get-urlmatch` -> `git config get-urlmatch`.

... is a Meh to me, personally.  I'd not actively push it
enthusiastically, but I'd passively accept its existence.

> Most importantly, this should help discoverability quite a lot by now
> also having a proper synopsis in both the manpage, but also in `git
> config -h`.
>
> Of course, backwards compatibility is a big concern. We don't want to
> just switch over to the new syntax and break all existing scripts and
> muscle memory. This patch series thus abuses the fact that the implicit
> modes (`git config foo.bar`, `git config foo.bar value` and `git config
> foo.bar value value-pattern`) all require a key as first argument. As
> keys _must_ have a dot, this allows us to unambiguously discern those
> from actual subcommands.

Clever ;-).