Merge branch 'ad/bisect-terms'
The use of 'good/bad' in "git bisect" made it confusing to use when hunting for a state change that is not a regression (e.g. bugfix). The command learned 'old/new' and then allows the end user to say e.g. "bisect start --term-old=fast --term=new=slow" to find a performance regression. Michael's idea to make 'good/bad' more intelligent does have certain attractiveness ($gname/272867), and makes some of the work on this topic a moot point. * ad/bisect-terms: bisect: allow setting any user-specified in 'git bisect start' bisect: add 'git bisect terms' to view the current terms bisect: add the terms old/new bisect: sanity check on terms
This commit is contained in:
11
bisect.c
11
bisect.c
@ -730,6 +730,11 @@ static void handle_bad_merge_base(void)
|
||||
"This means the bug has been fixed "
|
||||
"between %s and [%s].\n",
|
||||
bad_hex, bad_hex, good_hex);
|
||||
} else if (!strcmp(term_bad, "new") && !strcmp(term_good, "old")) {
|
||||
fprintf(stderr, "The merge base %s is new.\n"
|
||||
"The property has changed "
|
||||
"between %s and [%s].\n",
|
||||
bad_hex, bad_hex, good_hex);
|
||||
} else {
|
||||
fprintf(stderr, "The merge base %s is %s.\n"
|
||||
"This means the first '%s' commit is "
|
||||
@ -762,11 +767,11 @@ static void handle_skipped_merge_base(const unsigned char *mb)
|
||||
}
|
||||
|
||||
/*
|
||||
* "check_merge_bases" checks that merge bases are not "bad".
|
||||
* "check_merge_bases" checks that merge bases are not "bad" (or "new").
|
||||
*
|
||||
* - If one is "bad", it means the user assumed something wrong
|
||||
* - If one is "bad" (or "new"), it means the user assumed something wrong
|
||||
* and we must exit with a non 0 error code.
|
||||
* - If one is "good", that's good, we have nothing to do.
|
||||
* - If one is "good" (or "old"), that's good, we have nothing to do.
|
||||
* - If one is "skipped", we can't know but we should warn.
|
||||
* - If we don't know, we should check it out and ask the user to test.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user