From: Junio C Hamano <gitster@pobox.com>
To: Jiamu Sun <39@barroit.sh>
Cc: git@vger.kernel.org, Aaron Plattner <aplattner@nvidia.com>,
Karthik Nayak <karthik.188@gmail.com>
Subject: Re: [PATCH v4 07/10] parseopt: autocorrect mistyped subcommands
Date: Mon, 16 Mar 2026 12:41:30 -0700 [thread overview]
Message-ID: <xmqqse9zo93p.fsf@gitster.g> (raw)
In-Reply-To: <SY0P300MB0801E3F75349DFDF98C221F6CE40A@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM> (Jiamu Sun's message of "Tue, 17 Mar 2026 00:36:20 +0900")
Jiamu Sun <39@barroit.sh> writes:
> Try to autocorrect the mistyped mandatory subcommand before showing an
> error and exiting. Subcommands parsed with PARSE_OPT_SUBCOMMAND_OPTIONAL
> are skipped.
>
> Use standard Damerau-Levenshtein distance (weights 1, 1, 1, 1) to
> establish a predictable, mathematically sound baseline.
>
> Scale the allowed edit distance based on input length to prevent
> false positives on short commands, following common practice for
> fuzziness thresholds (e.g., Elasticsearch's AUTO fuzziness):
> - Length 0-2: 0 edits allowed
> - Length 3-5: 1 edit allowed
> - Length 6+: 2 edits allowed
Is there a reason why this needs to differ from the settings for the
typo detection/fixes for main commands? Would the same reasoning
apply to both, and if not why not?
I would have expected that we would just emulate what we already do
to the main commands, and later with experience with the subcommand
typo detection/fixes, would tweak the parameters either only to the
subcommand part or to the both with justifications.
> + /*
> + * Builtin subcommands are small enough that printing them all via
> + * usage_with_options() is sufficient. Therefore, AUTOCORRECT_HINT
> + * acts like AUTOCORRECT_NEVER.
> + */
Sorry, but I am a bit confused with this reference to "Builtin
subcommands". Are there subcommands that are not built-in?
next prev parent reply other threads:[~2026-03-16 19:41 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-08 12:17 [PATCH 0/5] parseopt: add subcommand autocorrection Jiamu Sun
2026-03-08 12:17 ` [PATCH 1/5] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-03-08 23:40 ` Junio C Hamano
2026-03-09 1:56 ` Jiamu Sun
2026-03-08 12:17 ` [PATCH 2/5] help: refactor command autocorrection handling Jiamu Sun
2026-03-08 23:52 ` Junio C Hamano
2026-03-09 2:06 ` Jiamu Sun
2026-03-08 12:17 ` [PATCH 3/5] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-03-09 0:04 ` Junio C Hamano
2026-03-09 2:11 ` Jiamu Sun
2026-03-08 12:17 ` [PATCH 4/5] parseopt: enable subcommand autocorrect for remote and notes Jiamu Sun
2026-03-08 12:17 ` [PATCH 5/5] help: add tests for subcommand autocorrection Jiamu Sun
2026-03-11 17:01 ` Aaron Plattner
2026-03-11 22:45 ` Jiamu Sun
2026-03-12 13:35 ` Junio C Hamano
2026-03-08 20:11 ` [PATCH 0/5] parseopt: add " Junio C Hamano
2026-03-08 22:07 ` Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 " Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 1/5] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 2/5] help: refactor command autocorrection handling Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 3/5] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 4/5] parseopt: enable subcommand autocorrect for remote and notes Jiamu Sun
2026-03-08 23:16 ` [PATCH v2 5/5] help: add tests for subcommand autocorrection Jiamu Sun
2026-03-10 11:40 ` [PATCH v3 0/8] parseopt: add " Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 1/8] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-03-10 12:46 ` Karthik Nayak
2026-03-11 1:49 ` Jiamu Sun
2026-03-11 4:20 ` Junio C Hamano
2026-03-11 4:20 ` Junio C Hamano
2026-03-11 6:12 ` Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 2/8] help: make autocorrect handling reusable Jiamu Sun
2026-03-10 12:52 ` Karthik Nayak
2026-03-10 20:10 ` Junio C Hamano
2026-03-11 2:05 ` Jiamu Sun
2026-03-11 1:58 ` Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 3/8] help: move tty check for autocorrection to autocorrect.c Jiamu Sun
2026-03-10 14:06 ` Karthik Nayak
2026-03-11 2:16 ` Jiamu Sun
2026-03-12 0:10 ` Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 4/8] autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINTONLY Jiamu Sun
2026-03-10 14:08 ` Karthik Nayak
2026-03-11 2:46 ` Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 5/8] autocorrect: provide config resolution API Jiamu Sun
2026-03-10 14:15 ` Karthik Nayak
2026-03-10 11:41 ` [PATCH v3 6/8] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-03-10 20:16 ` Junio C Hamano
2026-03-11 2:48 ` Jiamu Sun
2026-03-11 23:26 ` Jiamu Sun
2026-03-12 2:38 ` Junio C Hamano
2026-03-12 4:53 ` Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 7/8] parseopt: enable subcommand autocorrection for git-remote and git-notes Jiamu Sun
2026-03-10 11:41 ` [PATCH v3 8/8] help: add tests for subcommand autocorrection Jiamu Sun
2026-03-11 4:23 ` Junio C Hamano
2026-03-11 6:10 ` Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 00/10] parseopt: add " Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 01/10] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 02/10] help: make autocorrect handling reusable Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 03/10] help: move tty check for autocorrection to autocorrect.c Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 04/10] autocorrect: use mode and delay instead of magic numbers Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 05/10] autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 06/10] autocorrect: provide config resolution API Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 07/10] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-03-16 19:41 ` Junio C Hamano [this message]
2026-03-17 3:21 ` Jiamu Sun
2026-04-15 17:55 ` Junio C Hamano
2026-04-16 2:24 ` Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 08/10] parseopt: enable subcommand autocorrection for git-remote and git-notes Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 09/10] parseopt: add tests for subcommand autocorrection Jiamu Sun
2026-03-16 15:36 ` [PATCH v4 10/10] doc: document autocorrect API Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 00/10] parseopt: add subcommand autocorrection Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 01/10] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 02/10] help: make autocorrect handling reusable Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 03/10] help: move tty check for autocorrection to autocorrect.c Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 04/10] autocorrect: use mode and delay instead of magic numbers Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 05/10] autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 06/10] autocorrect: provide config resolution API Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 07/10] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 08/10] parseopt: enable subcommand autocorrection for git-remote and git-notes Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 09/10] parseopt: add tests for subcommand autocorrection Jiamu Sun
2026-04-22 12:18 ` [PATCH v5 10/10] doc: document autocorrect API Jiamu Sun
2026-04-23 0:08 ` [PATCH v5 00/10] parseopt: add subcommand autocorrection Junio C Hamano
2026-04-23 1:14 ` Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 " Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 01/10] parseopt: extract subcommand handling from parse_options_step() Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 02/10] help: make autocorrect handling reusable Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 03/10] help: move tty check for autocorrection to autocorrect.c Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 04/10] autocorrect: use mode and delay instead of magic numbers Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 05/10] autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 06/10] autocorrect: provide config resolution API Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 07/10] parseopt: autocorrect mistyped subcommands Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 08/10] parseopt: enable subcommand autocorrection for git-remote and git-notes Jiamu Sun
2026-04-23 1:37 ` [PATCH v6 09/10] parseopt: add tests for subcommand autocorrection Jiamu Sun
2026-04-23 1:38 ` [PATCH v6 10/10] doc: document autocorrect API Jiamu Sun
2026-05-11 3:03 ` [PATCH v6 00/10] parseopt: add subcommand autocorrection Junio C Hamano
2026-05-15 14:34 ` Jiamu Sun
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=xmqqse9zo93p.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=39@barroit.sh \
--cc=aplattner@nvidia.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@gmail.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.