branch,checkout: fix --track usage strings

As Ævar pointed out in [1], the use of PARSE_OPT_LITERAL_ARGHELP with a
list of allowed parameters is not recommended. Both git-branch and
git-checkout were changed in d311566 (branch: add flags and config to
inherit tracking, 2021-12-20) to use this discouraged combination for
their --track flags.

Fix this by removing PARSE_OPT_LITERAL_ARGHELP, and changing the arghelp
to simply be "mode". Users may discover allowed values in the manual
pages.

[1]: https://lore.kernel.org/git/220111.86a6g3yqf9.gmgdl@evledraar.gmail.com/

Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Josh Steadmon 2022-01-18 12:49:46 -08:00 committed by Junio C Hamano
parent 44f14a9d24
commit 15f002812f
2 changed files with 5 additions and 5 deletions

View file

@ -632,9 +632,9 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
OPT__VERBOSE(&filter.verbose,
N_("show hash and subject, give twice for upstream branch")),
OPT__QUIET(&quiet, N_("suppress informational messages")),
OPT_CALLBACK_F('t', "track", &track, "direct|inherit",
OPT_CALLBACK_F('t', "track", &track, N_("mode"),
N_("set branch tracking configuration"),
PARSE_OPT_OPTARG | PARSE_OPT_LITERAL_ARGHELP,
PARSE_OPT_OPTARG,
parse_opt_tracking_mode),
OPT_SET_INT_F(0, "set-upstream", &track, N_("do not use"),
BRANCH_TRACK_OVERRIDE, PARSE_OPT_HIDDEN),

View file

@ -1530,9 +1530,9 @@ static struct option *add_common_switch_branch_options(
{
struct option options[] = {
OPT_BOOL('d', "detach", &opts->force_detach, N_("detach HEAD at named commit")),
OPT_CALLBACK_F('t', "track", &opts->track, "direct|inherit",
N_("set up tracking mode (see git-pull(1))"),
PARSE_OPT_OPTARG | PARSE_OPT_LITERAL_ARGHELP,
OPT_CALLBACK_F('t', "track", &opts->track, N_("mode"),
N_("set branch tracking configuration"),
PARSE_OPT_OPTARG,
parse_opt_tracking_mode),
OPT__FORCE(&opts->force, N_("force checkout (throw away local modifications)"),
PARSE_OPT_NOCOMPLETE),