From: "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Harald Nordgren <haraldnordgren@gmail.com>
Subject: [PATCH v5 0/2] config: suggest the correct form when key contains "="
Date: Tue, 02 Jun 2026 13:39:15 +0000 [thread overview]
Message-ID: <pull.2302.v5.git.git.1780407557.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2302.v4.git.git.1779823288005.gitgitgadget@gmail.com>
* New commit config: let git_config_parse_key() validate quietly adds a
quiet parameter (and an optional store_key) so callers can validate
without writing to stderr.
* Validation in die_missing_set_value() now routes through
git_config_parse_key(key, NULL, NULL, 1) instead of the previous local
helper.
* Added tests for 1foo.bar=baz and foo.some.b_r=baz.
Harald Nordgren (2):
config: let git_config_parse_key() validate quietly
config: improve diagnostic for "set" with missing value
builtin/config.c | 34 ++++++++++++++++++++++++++--
config.c | 34 ++++++++++++++++++----------
config.h | 2 +-
submodule-config.c | 2 +-
t/t1300-config.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 111 insertions(+), 16 deletions(-)
base-commit: 9ac3f193c05c2237e2b14ebaa1149e9fc8a1abe0
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2302%2FHaraldNordgren%2Fconfig-hint-equals-key-v5
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2302/HaraldNordgren/config-hint-equals-key-v5
Pull-Request: https://github.com/git/git/pull/2302
Range-diff vs v4:
-: ---------- > 1: d938ebf95a config: let git_config_parse_key() validate quietly
1: 780b99409c ! 2: e5a2070ee1 config: improve diagnostic for "set" with missing value
@@ builtin/config.c: static void check_argc(int argc, int min, int max)
exit(129);
}
-+static int is_valid_key(const char *key)
-+{
-+ const char *last_dot = strrchr(key, '.');
-+
-+ return last_dot && isalpha(last_dot[1]);
-+}
-+
+static NORETURN void die_missing_set_value(const char *arg)
+{
+ const char *last_dot = strrchr(arg, '.');
+ const char *eq = last_dot ? strchr(last_dot + 1, '=') : NULL;
+ char *prefix = eq ? xstrndup(arg, eq - arg) : NULL;
+
-+ if (prefix && is_valid_key(prefix)) {
++ if (prefix && !git_config_parse_key(prefix, NULL, NULL, 1)) {
+ error(_("missing value to set to the variable '%s'"), arg);
+ advise(_("did you mean \"git config set %s %s\"?"),
+ prefix, eq + 1);
-+ } else if (is_valid_key(arg)) {
++ } else if (!git_config_parse_key(arg, NULL, NULL, 1)) {
+ error(_("missing value to set to the variable '%s'"), arg);
+ } else {
+ error(_("missing value to set to a variable with an invalid name '%s'"),
@@ t/t1300-config.sh: test_expect_success 'invalid key' '
+ test_grep ! "did you mean" err
+'
+
++test_expect_success 'set with 1 arg: digit-led section name is valid' '
++ test_must_fail git config set 1foo.bar=baz 2>err &&
++ test_grep "missing value to set to the variable .1foo\\.bar=baz." err &&
++ test_grep "did you mean .git config set 1foo\\.bar baz." err
++'
++
++test_expect_success 'set with 1 arg: subsection plus invalid variable name' '
++ test_must_fail git config set foo.some.b_r=baz 2>err &&
++ test_grep "missing value to set to a variable with an invalid name .foo\\.some\\.b_r=baz." err &&
++ test_grep ! "did you mean" err
++'
++
+test_expect_success 'set with 1 arg of valid key reports missing value' '
+ test_must_fail git config set pull.rebase 2>err &&
+ test_grep "missing value to set to the variable .pull\\.rebase." err &&
--
gitgitgadget
next prev parent reply other threads:[~2026-06-02 13:39 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 13:58 [PATCH] config: suggest the correct form when key contains "=" Harald Nordgren via GitGitGadget
2026-05-14 21:26 ` Junio C Hamano
2026-05-14 22:16 ` [PATCH] fetch: add fetch.pruneLocalBranches config Harald Nordgren
2026-05-15 1:28 ` Junio C Hamano
2026-05-15 7:56 ` Email issues Harald Nordgren
2026-05-15 12:02 ` Kristoffer Haugsbakk
2026-05-15 9:39 ` [PATCH] fetch: add fetch.pruneLocalBranches config Harald Nordgren
2026-05-16 12:51 ` [PATCH] config: suggest the correct form when key contains "=" Harald Nordgren
2026-05-16 12:52 ` [PATCH v2] config: suggest the correct form when key contains "=" in set context Harald Nordgren via GitGitGadget
2026-05-25 8:33 ` [PATCH v3] " Harald Nordgren via GitGitGadget
2026-05-25 9:15 ` Junio C Hamano
2026-05-26 19:21 ` [PATCH v4] config: improve diagnostic for "set" with missing value Harald Nordgren via GitGitGadget
2026-05-26 19:24 ` Harald Nordgren
2026-06-01 23:45 ` Junio C Hamano
2026-06-01 23:53 ` Junio C Hamano
2026-06-02 13:39 ` Harald Nordgren via GitGitGadget [this message]
2026-06-02 13:39 ` [PATCH v5 1/2] config: let git_config_parse_key() validate quietly Harald Nordgren via GitGitGadget
2026-06-02 14:08 ` Junio C Hamano
2026-06-02 16:31 ` Harald Nordgren
2026-06-04 1:09 ` Junio C Hamano
2026-06-02 13:39 ` [PATCH v5 2/2] config: improve diagnostic for "set" with missing value Harald Nordgren via GitGitGadget
2026-06-02 14:18 ` Junio C Hamano
2026-06-02 18:43 ` [PATCH v6 0/2] config: suggest the correct form when key contains "=" Harald Nordgren via GitGitGadget
2026-06-02 18:43 ` [PATCH v6 1/2] config: add git_config_key_is_valid() for quiet validation Harald Nordgren via GitGitGadget
2026-06-02 18:43 ` [PATCH v6 2/2] config: improve diagnostic for "set" with missing value Harald Nordgren via GitGitGadget
2026-06-04 1:09 ` [PATCH v6 0/2] config: suggest the correct form when key contains "=" Junio C Hamano
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=pull.2302.v5.git.git.1780407557.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=haraldnordgren@gmail.com \
--cc=kristofferhaugsbakk@fastmail.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.