1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-24 01:26:16 +02:00

bisect--helper: handle states directly

In preparation for making `git bisect` a real built-in, let's prepare
the `bisect--helper` built-in to handle `git bisect--helper good` and
`git bisect--helper bad`, i.e. eliminate the need of `state` subcommand.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
Johannes Schindelin 2022-11-10 23:36:44 +07:00 committed by Taylor Blau
parent 5512376ae1
commit df63421be9
2 changed files with 19 additions and 21 deletions

View File

@ -1347,18 +1347,6 @@ static int cmd_bisect__next(int argc, const char **argv UNUSED, const char *pref
return res;
}
static int cmd_bisect__state(int argc, const char **argv, const char *prefix UNUSED)
{
int res;
struct bisect_terms terms = { 0 };
set_terms(&terms, "bad", "good");
get_terms(&terms);
res = bisect_state(&terms, argv, argc);
free_terms(&terms);
return res;
}
static int cmd_bisect__log(int argc, const char **argv UNUSED, const char *prefix UNUSED)
{
if (argc)
@ -1424,7 +1412,6 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
OPT_SUBCOMMAND("terms", &fn, cmd_bisect__terms),
OPT_SUBCOMMAND("start", &fn, cmd_bisect__start),
OPT_SUBCOMMAND("next", &fn, cmd_bisect__next),
OPT_SUBCOMMAND("state", &fn, cmd_bisect__state),
OPT_SUBCOMMAND("log", &fn, cmd_bisect__log),
OPT_SUBCOMMAND("replay", &fn, cmd_bisect__replay),
OPT_SUBCOMMAND("skip", &fn, cmd_bisect__skip),
@ -1433,14 +1420,27 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
OPT_SUBCOMMAND("run", &fn, cmd_bisect__run),
OPT_END()
};
argc = parse_options(argc, argv, prefix, options, git_bisect_usage, 0);
argc = parse_options(argc, argv, prefix, options, git_bisect_usage,
PARSE_OPT_SUBCOMMAND_OPTIONAL);
if (!fn)
usage_with_options(git_bisect_usage, options);
argc--;
argv++;
if (!fn) {
struct bisect_terms terms = { 0 };
res = fn(argc, argv, prefix);
if (!argc)
usage_msg_opt(_("need a command"), git_bisect_usage, options);
set_terms(&terms, "bad", "good");
get_terms(&terms);
if (check_and_set_terms(&terms, argv[0]))
usage_msg_optf(_("unknown command: '%s'"), git_bisect_usage,
options, argv[0]);
res = bisect_state(&terms, argv, argc);
free_terms(&terms);
} else {
argc--;
argv++;
res = fn(argc, argv, prefix);
}
/*
* Handle early success

View File

@ -57,8 +57,6 @@ case "$#" in
case "$cmd" in
help)
git bisect -h ;;
bad|good|new|old|"$TERM_BAD"|"$TERM_GOOD")
git bisect--helper state "$cmd" "$@" ;;
log)
git bisect--helper log || exit ;;
*)