Hi,

this set of patches provides improvements for git bisect.

Quick summary of changes
 - relevant for users:
   - `git bisect next` is documented and motivated
   - git bisect implementation becomes much faster
     (or: is now working) for big repositories**
 - relevant for developers:
   - a test for the git bisect algorithm is added
   - fix: bisect.c compiles also if DEBUG_BISECT is set

The ** marked change is the most interesting one.
To be more accurate: the use case is when you want to bisect in a
repository with a huge amount of merge commits (and having these
merge commits relevant for the actual bisect process).
For example, a bisect in the whole git master branch took
~50 seconds, now it takes ~4 seconds.


Note that the patches have finer granularity (especially the performance
improvements are splitted into several preparing commits).
For some patches, there is some more patch-related story as
"cover letter material" in these patches.

Btw: I also wondered about the internationalizaton: no string in bisect.c
is marked for translation. Intentionally?

Cheers

Stephan Beyer (16):
  bisect: write about `bisect next` in documentation
  bisect: add test for the bisect algorithm
  bisect: make bisect compile if DEBUG_BISECT is set
  bisect: make algorithm behavior independent of DEBUG_BISECT
  bisect: get rid of recursion in count_distance()
  bisect: use struct node_data array instead of int array
  bisect: replace clear_distance() by unique markers
  bisect: use commit instead of commit list as arguments when
    appropriate
  bisect: extract get_distance() function from code duplication
  bisect: introduce distance_direction()
  bisect: make total number of commits global
  bisect: rename count_distance() to compute_weight()
  bisect: prepare for different algorithms based on find_all
  bisect: use a modified breadth-first search to find relevant weights
  bisect: compute best bisection in compute_relevant_weights()
  bisect: get back halfway shortcut

 Documentation/git-bisect.txt |  25 +++
 bisect.c                     | 473 ++++++++++++++++++++++++++++---------------
 git-bisect.sh                |  15 +-
 t/t8010-bisect-algorithm.sh  | 162 +++++++++++++++
 4 files changed, 502 insertions(+), 173 deletions(-)
 create mode 100755 t/t8010-bisect-algorithm.sh

-- 
2.7.1.354.gd492730.dirty

--
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