]> git.ipfire.org Git - thirdparty/git.git/commitdiff
bisect: add enum to represent bisect returning codes
authorMiriam Rubio <mirucam@gmail.com>
Mon, 17 Feb 2020 08:40:32 +0000 (09:40 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 19 Feb 2020 17:37:14 +0000 (09:37 -0800)
Since we want to get rid of git-bisect.sh, 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 <chriscool@tuxfamily.org>
Signed-off-by: Miriam Rubio <mirucam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
bisect.c
bisect.h

index 83cb5b3a9847d5dfd72889c188f6c222f5288198..e4573c7ba15c6a55dd286ea64cfb5f925b16b056 100644 (file)
--- 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;
index 4e69a11ea8f3c60fe0c273fc4af98760fd236f09..c921ead02c5c75d1a232af1f737aa5f60e99eb22 100644 (file)
--- 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,
+       BISECT_FAILED = -1
+};
+
+enum bisect_error bisect_next_all(struct repository *r,
                    const char *prefix,
                    int no_checkout);