Pranit Bauva <[email protected]> writes:
> +static int bisect_reset(const char *commit)
> +{
> + struct strbuf branch = STRBUF_INIT;
> +
> + if (!commit) {
> + if (strbuf_read_file(&branch, git_path_bisect_start(), 0) < 1) {
Hmm, tricky but correct to do the "< 1" comparison. If the file
does not exist, you'd get -1; if it fails to read it, you'd get -1;
if it turns out to be empty, you'd get 0.
> + printf("We are not bisecting.\n");
> + return 0;
> + }
> + strbuf_rtrim(&branch);
> + } else {
> + struct object_id oid;
> + if (get_oid(commit, &oid))
> + return error(_("'%s' is not a valid commit"), commit);
The original is
rev-parse --quiet --verify "$1^{commit}"
Unless the caller of this function already appended "^{commit}" to
whatever the user gave "bisect--helper bisect-reset", this
conversion is not equivalent. If you said
git bisect reset HEAD:
get_oid() would tell you that the top-level tree object of the
current commit exists in the object store, but the original is
meant to catch "That's not a commit, it's a tree!" before attempting
to run "git checkout" on it.
I think get_sha1_committish() is what you want to use here.
> + strbuf_addstr(&branch, commit);
> + }
Also this version fails to catch "bisect reset a b c" as an error, I
suspect.
> @@ -627,7 +603,7 @@ case "$#" in
> visualize|view)
> bisect_visualize "$@" ;;
> reset)
> - bisect_reset "$@" ;;
> + git bisect--helper --bisect-reset "$@" ;;
> replay)
> bisect_replay "$@" ;;
> log)
>
> --
> https://github.com/git/git/pull/287
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html