]> git.ipfire.org Git - thirdparty/git.git/blobdiff - bisect.c
reftable: generic interface to tables
[thirdparty/git.git] / bisect.c
index af2863d044b704f3b7e9d6617dbb2226d4c8a1fe..888949fba6b5d5301b49daff323f977daf9f4e01 100644 (file)
--- a/bisect.c
+++ b/bisect.c
@@ -23,7 +23,6 @@ static struct oid_array skipped_revs;
 static struct object_id *current_bad_oid;
 
 static const char *argv_checkout[] = {"checkout", "-q", NULL, "--", NULL};
-static const char *argv_show_branch[] = {"show-branch", NULL, NULL};
 
 static const char *term_bad;
 static const char *term_good;
@@ -728,7 +727,9 @@ static int is_expected_rev(const struct object_id *oid)
 static enum bisect_error bisect_checkout(const struct object_id *bisect_rev, int no_checkout)
 {
        char bisect_rev_hex[GIT_MAX_HEXSZ + 1];
-       enum bisect_error res = BISECT_OK;
+       struct commit *commit;
+       struct pretty_print_context pp = {0};
+       struct strbuf commit_msg = STRBUF_INIT;
 
        oid_to_hex_r(bisect_rev_hex, bisect_rev);
        update_ref(NULL, "BISECT_EXPECTED_REV", bisect_rev, NULL, 0, UPDATE_REFS_DIE_ON_ERR);
@@ -738,24 +739,21 @@ static enum bisect_error bisect_checkout(const struct object_id *bisect_rev, int
                update_ref(NULL, "BISECT_HEAD", bisect_rev, NULL, 0,
                           UPDATE_REFS_DIE_ON_ERR);
        } else {
-               res = run_command_v_opt(argv_checkout, RUN_GIT_CMD);
-               if (res)
+               if (run_command_v_opt(argv_checkout, RUN_GIT_CMD))
                        /*
                         * Errors in `run_command()` itself, signaled by res < 0,
                         * and errors in the child process, signaled by res > 0
-                        * can both be treated as regular BISECT_FAILURE (-1).
+                        * can both be treated as regular BISECT_FAILED (-1).
                         */
-                       return -abs(res);
+                       return BISECT_FAILED;
        }
 
-       argv_show_branch[1] = bisect_rev_hex;
-       res = run_command_v_opt(argv_show_branch, RUN_GIT_CMD);
-       /*
-        * Errors in `run_command()` itself, signaled by res < 0,
-        * and errors in the child process, signaled by res > 0
-        * can both be treated as regular BISECT_FAILURE (-1).
-        */
-       return -abs(res);
+       commit = lookup_commit_reference(the_repository, bisect_rev);
+       format_commit_message(commit, "[%H] %s%n", &commit_msg, &pp);
+       fputs(commit_msg.buf, stdout);
+       strbuf_release(&commit_msg);
+
+       return BISECT_OK;
 }
 
 static struct commit *get_commit_reference(struct repository *r,