public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: "René Scharfe" <l.s.r@web•de>
To: Paul Wintz <pwintz@ucsc•edu>, git@vger•kernel.org
Cc: Patrick Steinhardt <ps@pks•im>, Junio C Hamano <gitster@pobox•com>
Subject: Re: [bug report] erroneous suggestion for "--add" option in `git config set` error message
Date: Mon, 24 Nov 2025 21:22:02 +0100	[thread overview]
Message-ID: <74cdfd68-f13e-4e45-9aa9-9629429ad0e1@web.de> (raw)
In-Reply-To: <CADBJ995pDG9R8EJnK5nwWKPWAf-XF5P5KTY+bAx71EhdMvvO6A@mail.gmail.com>

On 11/21/25 12:39 AM, Paul Wintz wrote:
> It seems that there is an erroneous suggestion in a `git config set`
> error message when setting a value that already has multiple values.
> The error message says to use the `--add` option, but this option does
> not seem to exist. The `--append` option should be suggested instead.
> 
> Steps to reproduce:
> 
> 1. Create a configuration with multiple values:
> 
>     git config set --global test.test 'hello'
>     git config set --global --append test.test 'hi'
> 
> 2. Try to set the value of `test.test`:
> 
>     git config set --global test.test 'hi'
> 
> An error message is shown:
> 
>     warning: test.test has multiple values
>     error: cannot overwrite multiple values with a single value
>            Use a regexp, --add or --replace-all to change test.test.
> 
> 3. Following the direction to use `--add` produces an error:
> 
>     > git config set --add test.test "aloha"
>     error: unknown option `add'
> 
> The error message should say `--append` instead of `--add`.
"git config --append <name> <value>" still works, but your suggestion
is good nevertheless.

--- >8 ---From 066828b25bb7d3086b9bff4188af30e07c7e1c16 Mon Sep 17 00:00:00 2001
Subject: [PATCH] config: fix suggestion for failed set of multi-valued option

The command "git config set <name> <value>" balks at options with
multiple values and suggests to use old-style "git config" actions that
can be used to change some or all of them.  List modern "git config set"
flags instead, as they are more fitting in this context.

Reported-by: Paul Wintz <pwintz@ucsc•edu>
Signed-off-by: René Scharfe <l.s.r@web•de>
---
 builtin/config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/config.c b/builtin/config.c
index 75852bd79d..86e0cd77f3 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -985,7 +985,7 @@ static int cmd_config_set(int argc, const char **argv, const char *prefix,
 						     argv[0], comment, value);
 		if (ret == CONFIG_NOTHING_SET)
 			error(_("cannot overwrite multiple values with a single value\n"
-			"       Use a regexp, --add or --replace-all to change %s."), argv[0]);
+			"       Use --value=<pattern>, --append or --all to change %s."), argv[0]);
 	}
 
 	location_options_release(&location_opts);
-- 
2.52.0


  reply	other threads:[~2025-11-24 20:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-20 23:39 [bug report] erroneous suggestion for "--add" option in `git config set` error message Paul Wintz
2025-11-24 20:22 ` René Scharfe [this message]
2025-11-24 20:33 ` [PATCH] config: fix suggestion for failed set of multi-valued option René Scharfe

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=74cdfd68-f13e-4e45-9aa9-9629429ad0e1@web.de \
    --to=l.s.r@web$(echo .)de \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    --cc=ps@pks$(echo .)im \
    --cc=pwintz@ucsc$(echo .)edu \
    /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