This commit introduces an option --ignore-checkout-failure which will allow git-bisect to tolerate checkout failures. This commit simply parses the option, but does not otherwise process it. Signed-off-by: Jon Seymour <jon.seymour@xxxxxxxxx> --- bisect.c | 5 ++++- bisect.h | 2 +- builtin/bisect--helper.c | 8 ++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bisect.c b/bisect.c index dd7e8ed..ce04092 100644 --- a/bisect.c +++ b/bisect.c @@ -24,6 +24,7 @@ struct argv_array { static const char *argv_checkout[] = {"checkout", "-q", NULL, "--", NULL}; static const char *argv_show_branch[] = {"show-branch", NULL, NULL}; +static int module_ignore_checkout_failure = 0; /* bits #0-15 in revision.h */ @@ -909,7 +910,7 @@ static void show_diff_tree(const char *prefix, struct commit *commit) * the bisection process finished successfully. * In this case the calling shell script should exit 0. */ -int bisect_next_all(const char *prefix) +int bisect_next_all(const char *prefix, const int ignore_checkout_failure) { struct rev_info revs; struct commit_list *tried; @@ -917,6 +918,8 @@ int bisect_next_all(const char *prefix) const unsigned char *bisect_rev; char bisect_rev_hex[41]; + module_ignore_checkout_failure = ignore_checkout_failure; + if (read_bisect_refs()) die("reading bisect refs failed"); diff --git a/bisect.h b/bisect.h index 0862ce5..4851310 100644 --- a/bisect.h +++ b/bisect.h @@ -27,7 +27,7 @@ struct rev_list_info { const char *header_prefix; }; -extern int bisect_next_all(const char *prefix); +extern int bisect_next_all(const char *prefix, const int ignore_checkout_failure); extern int estimate_bisect_steps(int all); diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c index 5b22639..f531458 100644 --- a/builtin/bisect--helper.c +++ b/builtin/bisect--helper.c @@ -3,17 +3,21 @@ #include "parse-options.h" #include "bisect.h" + static const char * const git_bisect_helper_usage[] = { - "git bisect--helper --next-all", + "git bisect--helper --next-all [ --ignore-checkout-failure ]", NULL }; int cmd_bisect__helper(int argc, const char **argv, const char *prefix) { int next_all = 0; + int ignore_checkout_failure = 0; struct option options[] = { OPT_BOOLEAN(0, "next-all", &next_all, "perform 'git bisect next'"), + OPT_BOOLEAN(0, "ignore-checkout-failure", &ignore_checkout_failure, + "ignore checkout failure"), OPT_END() }; @@ -24,5 +28,5 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix) usage_with_options(git_bisect_helper_usage, options); /* next-all */ - return bisect_next_all(prefix); + return bisect_next_all(prefix, ignore_checkout_failure); } -- 1.7.6.347.g96e0b.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html