From: David Aguilar <davvid@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Scott Chacon <schacon@gmail.com>,
Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Yongmin <yewon@revi.email>, Jeff King <peff@peff.net>
Subject: [PATCH 1/2] help: show the suggested command when help.autocorrect is false
Date: Sat, 1 Feb 2025 13:33:18 -0800 [thread overview]
Message-ID: <20250201213319.153109-1-davvid@gmail.com> (raw)
In-Reply-To: <pull.1869.v4.git.git.1736760824201.gitgitgadget@gmail.com>
Make the handling of false boolean values for help.autocorrect
consistent with the handling of value 0 by showing the suggested
commands but not running them.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
---
This is based on the sc/help-autocorrect-one patches from this thread
and is in response to the open question from "What's coooking in git.git":
> On Fri, 31 Jan 2025 18:51:33 -0800 Junio C Hamano <gitster@pobox.com> wrote:
> Looking good except for "should 0 and false be 'tell it without doing it'?".
source: <xmqq5xlu4bt6.fsf@gitster.g>
This is what it would look like if the answer were to be, "yes".
Documentation/config/help.txt | 4 ++--
help.c | 6 ++++--
t/t9003-help-autocorrect.sh | 17 ++++++++++-------
3 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/Documentation/config/help.txt b/Documentation/config/help.txt
index a4c6079af8..676ba3a55f 100644
--- a/Documentation/config/help.txt
+++ b/Documentation/config/help.txt
@@ -11,12 +11,12 @@ help.autoCorrect::
If git detects typos and can identify exactly one valid command similar
to the error, git will try to suggest the correct command or even
run the suggestion automatically. Possible config values are:
- - 0: show the suggested command (default).
+ - 0, "false", "off", "no": show the suggested command (default).
- 1, "true", "on", "yes", "immediate": run the suggested command
immediately.
- positive number > 1: run the suggested command after specified
deciseconds (0.1 sec).
- - "false", "off", "no", "never": don't run or show any suggested command.
+ - "never": don't run or show any suggested command.
- "prompt": show the suggestion and prompt for confirmation to run
the command.
diff --git a/help.c b/help.c
index 7148963e46..55425c0d97 100644
--- a/help.c
+++ b/help.c
@@ -552,6 +552,7 @@ struct help_unknown_cmd_config {
struct cmdnames aliases;
};
+#define AUTOCORRECT_SHOW (-4)
#define AUTOCORRECT_PROMPT (-3)
#define AUTOCORRECT_NEVER (-2)
#define AUTOCORRECT_IMMEDIATELY (-1)
@@ -562,7 +563,7 @@ static int parse_autocorrect(const char *value)
case 1:
return AUTOCORRECT_IMMEDIATELY;
case 0:
- return AUTOCORRECT_NEVER;
+ return AUTOCORRECT_SHOW;
default: /* other random text */
break;
}
@@ -713,7 +714,8 @@ char *help_unknown_cmd(const char *cmd)
n++)
; /* still counting */
}
- if (cfg.autocorrect && n == 1 && SIMILAR_ENOUGH(best_similarity)) {
+ if (cfg.autocorrect && cfg.autocorrect != AUTOCORRECT_SHOW && n == 1 &&
+ SIMILAR_ENOUGH(best_similarity)) {
char *assumed = xstrdup(main_cmds.names[0]->name);
fprintf_ln(stderr,
diff --git a/t/t9003-help-autocorrect.sh b/t/t9003-help-autocorrect.sh
index 85a5074b5e..5ebfc00f52 100755
--- a/t/t9003-help-autocorrect.sh
+++ b/t/t9003-help-autocorrect.sh
@@ -28,15 +28,18 @@ test_expect_success 'setup' '
test_cmp expect actual
'
-test_expect_success 'autocorrect showing candidates' '
- git config help.autocorrect 0 &&
+for show in false no off 0
+do
+ test_expect_success 'autocorrect showing candidates' '
+ git config help.autocorrect $show &&
- test_must_fail git lfg 2>actual &&
- grep "^ lgf" actual &&
+ test_must_fail git lfg 2>actual &&
+ grep "^ lgf" actual &&
- test_must_fail git distimdist 2>actual &&
- grep "^ distimdistim" actual
-'
+ test_must_fail git distimdist 2>actual &&
+ grep "^ distimdistim" actual
+ '
+done
for immediate in -1 immediate
do
--
2.48.0.rc2.34.gefa3f50b25
next prev parent reply other threads:[~2025-02-01 21:33 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 19:31 [PATCH] help: interpret help.autocorrect=1 as "immediate" rather than 0.1s Scott Chacon via GitGitGadget
2025-01-08 21:42 ` Kristoffer Haugsbakk
2025-01-09 0:18 ` Johannes Schindelin
2025-01-13 23:33 ` Taylor Blau
2025-01-09 1:12 ` Junio C Hamano
2025-01-09 7:05 ` Yongmin
2025-01-09 10:49 ` [PATCH v2] help: interpret boolean string values for help.autocorrect Scott Chacon via GitGitGadget
2025-01-09 16:32 ` Junio C Hamano
2025-01-10 7:43 ` Scott Chacon
2025-01-10 9:30 ` Scott Chacon
2025-01-10 12:11 ` Jeff King
2025-01-10 15:02 ` Junio C Hamano
2025-01-11 11:27 ` [PATCH v3] " Scott Chacon via GitGitGadget
2025-01-13 5:43 ` Jeff King
2025-01-13 9:31 ` Scott Chacon
2025-01-13 16:18 ` Junio C Hamano
2025-01-18 1:12 ` Junio C Hamano
2025-01-13 9:33 ` [PATCH v4] " Scott Chacon via GitGitGadget
2025-02-01 21:33 ` David Aguilar [this message]
2025-02-01 21:33 ` [PATCH 2/2] help: add "show" as a valid configuration value David Aguilar
2025-02-03 22:53 ` Junio C Hamano
2025-02-03 22:53 ` [PATCH 1/2] help: show the suggested command when help.autocorrect is false Junio C Hamano
2025-02-04 3:05 ` Jeff King
2025-02-04 13:38 ` 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=20250201213319.153109-1-davvid@gmail.com \
--to=davvid@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=peff@peff.net \
--cc=schacon@gmail.com \
--cc=yewon@revi.email \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).