Subject: Re: [PATCH v8 3/5] bisect: simplify the addition of new bisect terms

From: Junio C Hamano <[email-masked]>
Date: Wed, 24 Jun 2015 10:29:17 -0700

Matthieu Moy <[email-masked]> writes:

> diff --git a/bisect.c b/bisect.c
> index 2d3dbdc..08be634 100644
> --- a/bisect.c
> +++ b/bisect.c
> @@ -747,7 +747,10 @@ static void handle_bad_merge_base(void)
>  				"between %s and [%s].\n",
>  				bad_hex, bad_hex, good_hex);
>  		} else {
> -			die("BUG: terms %s/%s not managed", name_bad, name_good);
> +			fprintf(stderr, "The merge base %s is %s.\n"
> +				"This means the first commit marked %s is "
> +				"between %s and [%s].\n",
> +				bad_hex, name_bad, name_bad, bad_hex, good_hex);
>  		}
>  		exit(3);
>  	}

Before the pre-context of this hunk is

		if (!strcmp(name_bad, "bad")) {
			fprintf(stderr, "The merge base %s is bad.\n"
				"This means the bug has been fixed "

So, after 5/5, the user could do

	git bisect terms bad worse

and get utterly confused.  I think 

-		if (!strcmp(name_bad, "bad")) {
+		if (!strcmp(name_bad, "bad") && !strcmp(name_good, "good") {

needs to be a part of this step.