This is a minor iteration over v7 to take into account Junio and Eric's comments, AND fix an important typo that I introduced in the strbuf code conversion (I used name_good instead of name_bad). This fixes the "git bisect visualize" bug I found earlier. I played a bit with the result and didn't find any bug. Except for the last patch, it seems at least close to mergeable. diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt index ef0c03c..a37336e 100644 --- a/Documentation/git-bisect.txt +++ b/Documentation/git-bisect.txt @@ -134,7 +134,7 @@ You must run `git bisect start` without commits as argument and run commits. Alternative terms: use your own terms -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If the builtins terms bad/good and new/old do not satisfy you, you can set your own terms. diff --git a/revision.c b/revision.c index f22923f..24ce842 100644 --- a/revision.c +++ b/revision.c @@ -2083,27 +2083,21 @@ extern void read_bisect_terms(const char **bad, const char **good); static int for_each_bad_bisect_ref(const char *submodule, each_ref_fn fn, void *cb_data) { - struct strbuf bisect_refs_buf = STRBUF_INIT; - const char *bisect_refs_str; + struct strbuf bisect_refs = STRBUF_INIT; int status; - strbuf_addstr(&bisect_refs_buf, "refs/bisect/"); - strbuf_addstr(&bisect_refs_buf, name_bad); - bisect_refs_str = strbuf_detach(&bisect_refs_buf, NULL); - status = for_each_ref_in_submodule(submodule, bisect_refs_str, fn, cb_data); - free((char *)bisect_refs_str); + strbuf_addf(&bisect_refs, "refs/bisect/%s", name_bad); + status = for_each_ref_in_submodule(submodule, bisect_refs.buf, fn, cb_data); + strbuf_release(&bisect_refs); return status; } static int for_each_good_bisect_ref(const char *submodule, each_ref_fn fn, void *cb_data) { - struct strbuf bisect_refs_buf = STRBUF_INIT; - const char *bisect_refs_str; + struct strbuf bisect_refs = STRBUF_INIT; int status; - strbuf_addstr(&bisect_refs_buf, "refs/bisect/"); - strbuf_addstr(&bisect_refs_buf, name_bad); - bisect_refs_str = strbuf_detach(&bisect_refs_buf, NULL); - status = for_each_ref_in_submodule(submodule, bisect_refs_str, fn, cb_data); - free((char *)bisect_refs_str); + strbuf_addf(&bisect_refs, "refs/bisect/%s", name_good); + status = for_each_ref_in_submodule(submodule, bisect_refs.buf, fn, cb_data); + strbuf_release(&bisect_refs); return status; } Antoine Delaite (5): bisect: correction of typo bisect: replace hardcoded "bad|good" by variables bisect: simplify the addition of new bisect terms bisect: add the terms old/new bisect: allow any terms set by user Documentation/git-bisect.txt | 67 +++++++++++++- bisect.c | 94 +++++++++++++++----- git-bisect.sh | 207 +++++++++++++++++++++++++++++++++++-------- revision.c | 20 ++++- t/t6030-bisect-porcelain.sh | 83 ++++++++++++++++- 5 files changed, 407 insertions(+), 64 deletions(-) mode change 100755 => 100644 git-bisect.sh -- 2.4.4.414.g59d82e6 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html