| 676 | } |
| 677 | |
| 678 | static enum bisect_error bisect_next(struct bisect_terms *terms, const char *prefix) |
| 679 | { |
| 680 | enum bisect_error res; |
| 681 | |
| 682 | if (bisect_autostart(terms)) |
| 683 | return BISECT_FAILED; |
| 684 | |
| 685 | if (bisect_next_check(terms, terms->term_good)) |
| 686 | return BISECT_FAILED; |
| 687 | |
| 688 | /* Perform all bisection computation */ |
| 689 | res = bisect_next_all(the_repository, prefix); |
| 690 | |
| 691 | if (res == BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND) { |
| 692 | res = bisect_successful(terms); |
| 693 | return res ? res : BISECT_INTERNAL_SUCCESS_1ST_BAD_FOUND; |
| 694 | } else if (res == BISECT_ONLY_SKIPPED_LEFT) { |
| 695 | res = bisect_skipped_commits(terms); |
| 696 | return res ? res : BISECT_ONLY_SKIPPED_LEFT; |
| 697 | } |
| 698 | return res; |
| 699 | } |
| 700 | |
| 701 | static enum bisect_error bisect_auto_next(struct bisect_terms *terms, const char *prefix) |
| 702 | { |
no test coverage detected