diff options
authorMiriam Rubio <>2020-02-17 08:40:32 (GMT)
committerJunio C Hamano <>2020-02-19 17:37:14 (GMT)
commit680e8a01e57cd383048bf4e7d9668ce715d6d649 (patch)
parentbfacfce7d94951fe5b4e70bc2431dae5506b474b (diff)
bisect: add enum to represent bisect returning codes
Since we want to get rid of, it would be necessary to convert those exit() calls to return statements so that errors can be reported. Create an enum called `bisect_error` with the bisecting return codes to use in `bisect.c` libification process. Change bisect_next_all() to make it return this enum. Mentored-by: Christian Couder <> Signed-off-by: Miriam Rubio <> Signed-off-by: Junio C Hamano <>
2 files changed, 14 insertions, 2 deletions
diff --git a/bisect.c b/bisect.c
index 83cb5b3..e4573c7 100644
--- a/bisect.c
+++ b/bisect.c
@@ -945,7 +945,7 @@ void read_bisect_terms(const char **read_bad, const char **read_good)
* If no_checkout is non-zero, the bisection process does not
* checkout the trial commit but instead simply updates BISECT_HEAD.
-int bisect_next_all(struct repository *r, const char *prefix, int no_checkout)
+enum bisect_error bisect_next_all(struct repository *r, const char *prefix, int no_checkout)
struct rev_info revs;
struct commit_list *tried;
diff --git a/bisect.h b/bisect.h
index 4e69a11..c921ead 100644
--- a/bisect.h
+++ b/bisect.h
@@ -31,7 +31,19 @@ struct rev_list_info {
const char *header_prefix;
-int bisect_next_all(struct repository *r,
+ * enum bisect_error represents the following return codes:
+ * BISECT_OK: success code. Internally, it means that next
+ * commit has been found (and possibly checked out) and it
+ * should be tested.
+ * BISECT_FAILED error code: default error code.
+ */
+enum bisect_error {
+ BISECT_OK = 0,
+enum bisect_error bisect_next_all(struct repository *r,
const char *prefix,
int no_checkout);