git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: builtin/config: --name-only doesn't imply --show-names in "git config get"

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 21, 2024, 20:59 UTC
Message-ID
<xmqqttfdwq0w.fsf@gitster.g>
In-Reply-To
<CAEg0tHQVK9hgcHTzn-ZPdwoFbbYFB2joeT0jLQgtD6yEH+1GiA@mail.gmail.com>
Yukai Chou <muzimuzhi@gmail.com> writes:
Show 15 quoted lines
> Junio C Hamano <gitster@pobox.com> 于2024年8月22日周四 00:07写道:
>>
>> Yukai Chou <muzimuzhi@gmail.com> writes:
>>
>> > # get empty line(s)
>> > git config get --all --name-only remote.origin.fetch
>> > # get lines of name(s)
>> > git config get --all --show-names --name-only remote.origin.fetch
>> >
>> > Either the doc or the behavior of --name-only needs some adjustment.
>>
>> This argues for making "all" imply we need to show the name of the
>> configuration variable,
>
> Sorry can you elaborate on what that "all" meant? A new option "--show-all"?
Sorry, but "--all" is probably a red herring.
What I wanted to say was that we can 
 (1) get rid of "--show-name",
 (2) have the combination of options that can emit values for more
    than one key to automatically show both name and value, and
 (3) add "--hide-name" so that such command can still show only the
     value.

where I mixed up (2) and "all". In fact, "--all" is not something that gives values for more than one key (it is things like regexp and urlmatch).

For example:
 $ git config --get-regexp 'sendemail\..*'

would show values for more than one variable, and depending on the variable, it may show the values for one variable more than once. According to the documentation, this was replaced with

    --get-regexp <name-regexp>::
            Replaced by `git config get --all --show-names --regexp <name-regexp>`.
but it could have been
    git config get --all --regexp <name-regexp>
as it is clear --regexp could give results for more than one key.

This points at a bug in the documentation, by the way. "git config --get-all" is described like so:

    --get-all <name> [<value-pattern>]::
            Replaced by `git config get [--value=<pattern>] --all --show-names <name>`.

but this gives values for only one key, and the command does not show key names. It is replaced by

	git config get [--value=<pattern>] --all <name>
without "--show-names".
Previous: Yukai ChouNext: Patrick Steinhardt
Message 4 of 6 in “builtin/config: --name-only doesn't imply --show-names in "git config get"”
  1. Yukai ChouAug 21, 2024
  2. Junio C HamanoAug 21, 2024
  3. Yukai ChouAug 21, 2024
  4. Junio C HamanoAug 21, 2024
  5. Patrick SteinhardtAug 22, 2024
  6. Junio C HamanoAug 22, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.