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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to