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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html