public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: "Kristoffer Haugsbakk" <kristofferhaugsbakk@fastmail•com>
To: "Patrick Steinhardt" <ps@pks•im>, git@vger•kernel.org
Cc: "SZEDER Gábor" <szeder.dev@gmail•com>,
	"Junio C Hamano" <gitster@pobox•com>
Subject: Re: [PATCH 4/5] builtin/config: special-case retrieving colors without a key
Date: Thu, 11 Sep 2025 18:48:45 +0200	[thread overview]
Message-ID: <365d19ca-0a61-44f1-ab31-7e87f47d55e6@app.fastmail.com> (raw)
In-Reply-To: <20250911-pks-config-color-v1-4-3a7c79df65b1@pks.im>

On Thu, Sep 11, 2025, at 15:24, Patrick Steinhardt wrote:
> Our documentation for git-config(1) has a section where it explains how
> to parse and use colors as Git would configure them. In order to get the

Okay.  This is simple to find with a `color` search.

> ANSI color escape sequence to reset the colors to normal we recommend
> the following command:
>
>     $ git config get --type=color --default="reset" ""
>
> What this command is supposed to do is to not parse any configuration
> key at all.

Or

    This command is not supposed to parse any configuration keys.

> Instead, it is expected to parse the "reset" default value
> and turn it into a proper ANSI color escape sequence.
>
> It was reported though [1] that this command doesn't work:
>
>     $ git config get --type=color --default="reset" ""
>     error: key does not contain a section:
>
> This error was introduced with 4e51389000 (builtin/config: introduce

IMO s/with/in/ ?

> "get" subcommand, 2024-05-06), where we introduced the new "get"

nit: s/introduced the new/introduced the/

> subcommand to retrieve configuration values. The preimage of that commit
> used `git config --get-color "" "reset"` instead, which still works
> nowadays.

nit: s/still works nowadays/still works/

>
> This use case is really quite specific to parsing colors, as it wouldn't

s/use case/use-case/

> make sense to give git-config(1) a default value and an empty config key
> only to return that default value unmodified. But with `--type=color` we
> don't return the value directly, but we instead parse the value into an
> ANSI escape sequence.

Two “but”?  Maybe

    But with `--type=color` we don't return the value directly; we
    instead parse the value into an ANSI escape sequence.

>
> As such, we can easily special-case this one use case: if the provided

s/use case/use-case/

Like special-case.

>
> As such, we can easily special-case this one use case: if the provided
> config key is empty, the user is asking for a color code and the user
> has provided a value, then we call `get_color()` directly. Do so to
> make the documented command work as expected.

In my opinion this is more difficult to read without an Oxford comma.
A bullet list could break up the serial comma and the comma used to
separate the “then” subclause.

    use-case:

    - if the provided config key is empty;

    - the user is asking for a color code; and

    - the user has provided a value,

    then we ...

In any case: I think a colon generally means that semicolon will be used
instead of serial comma.

>
> [1]: <aI+oQvQgnNtC6DVw@szeder•dev>
>
> Reported-by: SZEDER Gábor <szeder.dev@gmail•com>
> Signed-off-by: Patrick Steinhardt <ps@pks•im>
>[snip too technical diff]

  reply	other threads:[~2025-09-11 16:49 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-11 13:24 [PATCH 0/5] builtin/config: bug fixes for "get" subcommand with "--type=color" Patrick Steinhardt
2025-09-11 13:24 ` [PATCH 1/5] t1300: write test expectations in the test's body Patrick Steinhardt
2025-09-11 16:50   ` Kristoffer Haugsbakk
2025-09-15 11:41     ` Patrick Steinhardt
2025-09-11 13:24 ` [PATCH 2/5] t1300: small style fixups Patrick Steinhardt
2025-09-11 13:24 ` [PATCH 3/5] builtin/config: do not die in `get_color()` Patrick Steinhardt
2025-09-11 13:24 ` [PATCH 4/5] builtin/config: special-case retrieving colors without a key Patrick Steinhardt
2025-09-11 16:48   ` Kristoffer Haugsbakk [this message]
2025-09-15 11:41     ` Patrick Steinhardt
2025-09-11 13:24 ` [PATCH 5/5] builtin/config: do not spawn pager when printing color codes Patrick Steinhardt
2025-09-11 16:49   ` Kristoffer Haugsbakk
2025-09-15 12:52 ` [PATCH v2 0/5] builtin/config: bug fixes for "get" subcommand with "--type=color" Patrick Steinhardt
2025-09-15 12:52   ` [PATCH v2 1/5] t1300: write test expectations in the test's body Patrick Steinhardt
2025-09-15 12:52   ` [PATCH v2 2/5] t1300: small style fixups Patrick Steinhardt
2025-09-15 12:52   ` [PATCH v2 3/5] builtin/config: do not die in `get_color()` Patrick Steinhardt
2025-09-15 12:52   ` [PATCH v2 4/5] builtin/config: special-case retrieving colors without a key Patrick Steinhardt
2025-09-15 17:19     ` Junio C Hamano
2025-09-15 12:52   ` [PATCH v2 5/5] builtin/config: do not spawn pager when printing color codes Patrick Steinhardt
2025-09-15 17:28     ` Junio C Hamano
2025-09-16  6:56       ` Kristoffer Haugsbakk
2025-09-18  6:03       ` Patrick Steinhardt
2025-09-18  6:14 ` [PATCH v3 0/5] builtin/config: bug fixes for "get" subcommand with "--type=color" Patrick Steinhardt
2025-09-18  6:14   ` [PATCH v3 1/5] t1300: write test expectations in the test's body Patrick Steinhardt
2025-09-18  6:14   ` [PATCH v3 2/5] t1300: small style fixups Patrick Steinhardt
2025-09-18  6:14   ` [PATCH v3 3/5] builtin/config: do not die in `get_color()` Patrick Steinhardt
2025-09-18  6:14   ` [PATCH v3 4/5] builtin/config: special-case retrieving colors without a key Patrick Steinhardt
2025-09-18  6:49     ` Junio C Hamano
2025-09-22 13:04       ` Patrick Steinhardt
2025-09-22 16:29         ` Junio C Hamano
2025-09-18  6:14   ` [PATCH v3 5/5] builtin/config: do not spawn pager when printing color codes Patrick Steinhardt
2025-09-22 13:06 ` [PATCH v4 0/5] builtin/config: bug fixes for "get" subcommand with "--type=color" Patrick Steinhardt
2025-09-22 13:06   ` [PATCH v4 1/5] t1300: write test expectations in the test's body Patrick Steinhardt
2025-09-22 13:06   ` [PATCH v4 2/5] t1300: small style fixups Patrick Steinhardt
2025-09-22 13:06   ` [PATCH v4 3/5] builtin/config: do not die in `get_color()` Patrick Steinhardt
2025-09-22 13:06   ` [PATCH v4 4/5] builtin/config: special-case retrieving colors without a key Patrick Steinhardt
2025-09-22 13:06   ` [PATCH v4 5/5] builtin/config: do not spawn pager when printing color codes Patrick Steinhardt

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=365d19ca-0a61-44f1-ab31-7e87f47d55e6@app.fastmail.com \
    --to=kristofferhaugsbakk@fastmail$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    --cc=ps@pks$(echo .)im \
    --cc=szeder.dev@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox