From: Junio C Hamano Date: Fri, 27 Feb 2026 00:13:16 GMT Subject: [Bug] duplicated long-form options go unnoticed Message-ID: If you make this stupid change to builtin/cat-file.c, rebuild your git and run "git cat-file --batch-check", without anybody helping you notice that your change to add a duplicated long command to the options table is a nonsense. There should be some way to help the developer. The most expensive would be a run-time check in parse_options_check(), which is not very advisable, but it may be OK to have one hidden behind a conditional debugging option (like exporting GIT_PARSEOPT_PARFNOID variable). builtin/cat-file.c | 1 + 1 file changed, 1 insertion(+) diff --git i/builtin/cat-file.c w/builtin/cat-file.c index b6f12f41d6..eaa53b2b29 100644 --- i/builtin/cat-file.c +++ w/builtin/cat-file.c @@ -1091,6 +1091,7 @@ int cmd_cat_file(int argc, N_("like --batch, but don't emit "), PARSE_OPT_OPTARG | PARSE_OPT_NONEG, batch_option_callback), + OPT_BOOL(0, "batch-check", &batch, N_("batch")), OPT_BOOL_F('z', NULL, &input_nul_terminated, N_("stdin is NUL-terminated"), PARSE_OPT_HIDDEN), OPT_BOOL('Z', NULL, &nul_terminated, N_("stdin and stdout is NUL-terminated")),