X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=revision.c;h=a8a3c3a4bdf5bd9287cb820330e73e8c28b88564;hb=f47f1e2ce8b4022113120b32decb4436341dc3aa;hp=8750c20e07d7b1533e948d93097a1e091f899bc7;hpb=60da8b15c1b77706e0701cccef2d534a1c3825ad;p=git.git diff --git a/revision.c b/revision.c index 8750c20e0..a8a3c3a4b 100644 --- a/revision.c +++ b/revision.c @@ -1032,7 +1032,8 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg if (!strcmp(arg, "--all") || !strcmp(arg, "--branches") || !strcmp(arg, "--tags") || !strcmp(arg, "--remotes") || !strcmp(arg, "--reflog") || !strcmp(arg, "--not") || - !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk")) + !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk") || + !strcmp(arg, "--bisect")) { unkv[(*unkc)++] = arg; return 1; @@ -1256,6 +1257,16 @@ void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx, ctx->argc -= n; } +static int for_each_bad_bisect_ref(each_ref_fn fn, void *cb_data) +{ + return for_each_ref_in("refs/bisect/bad", fn, cb_data); +} + +static int for_each_good_bisect_ref(each_ref_fn fn, void *cb_data) +{ + return for_each_ref_in("refs/bisect/good", fn, cb_data); +} + static void append_prune_data(const char ***prune_data, const char **av) { const char **prune = *prune_data; @@ -1327,6 +1338,12 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch handle_refs(revs, flags, for_each_branch_ref); continue; } + if (!strcmp(arg, "--bisect")) { + handle_refs(revs, flags, for_each_bad_bisect_ref); + handle_refs(revs, flags ^ UNINTERESTING, for_each_good_bisect_ref); + revs->bisect = 1; + continue; + } if (!strcmp(arg, "--tags")) { handle_refs(revs, flags, for_each_tag_ref); continue;