git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 00/16] git bisect improvements

From
Pranit Bauva <pranit.bauva@gmail.com>
Date
Mar 20, 2016, 18:50 UTC
Message-ID
<CAFZEwPPon1q_iW_xNfmVxiQhyaQh_pZpk2jzoyzi3RjJd998pg@mail.gmail.com>
In-Reply-To
<1456452282-10325-1-git-send-email-s-beyer@gmx.net>

I have been recently following this series of patches and it seems a bit stale. These patches haven't been followed up with improvement patches. If it is okay with you then can I work more upon these patches in my GSoC project. These really seem interesting and Git could really benefit from this.

Regards, Pranit Bauva

On Fri, Feb 26, 2016 at 7:34 AM, Stephan Beyer <s-beyer@gmx.net> wrote:
Show 64 quoted lines
> 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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous: Stephan BeyerNext: Stephan Beyer
Message 31 of 34 in “git bisect improvements”
  1. 00/16 git bisect improvementsStephan Beyer, Feb 26, 2016
  2. 01/16 bisect: write about `bisect next` in documentationStephan Beyer, Feb 26, 2016
  3. Jacob KellerFeb 26, 2016
  4. Junio C HamanoFeb 26, 2016
  5. Stephan BeyerFeb 27, 2016
  6. Junio C HamanoFeb 27, 2016
  7. Stephan BeyerFeb 27, 2016
  8. Junio C HamanoFeb 28, 2016
  9. 02/16 bisect: add test for the bisect algorithmStephan Beyer, Feb 26, 2016
  10. Christian CouderFeb 26, 2016
  11. Stephan BeyerFeb 26, 2016
  12. Christian CouderFeb 27, 2016
  13. Matthieu MoyFeb 27, 2016
  14. 03/16 bisect: make bisect compile if DEBUG_BISECT is setStephan Beyer, Feb 26, 2016
  15. 04/16 bisect: make algorithm behavior independent of DEBUG_BISECTStephan Beyer, Feb 26, 2016
  16. 05/16 bisect: get rid of recursion in count_distance()Stephan Beyer, Feb 26, 2016
  17. 06/16 bisect: use struct node_data array instead of int arrayStephan Beyer, Feb 26, 2016
  18. 07/16 bisect: replace clear_distance() by unique markersStephan Beyer, Feb 26, 2016
  19. 08/16 bisect: use commit instead of commit list as arguments when appropriateStephan Beyer, Feb 26, 2016
  20. Junio C HamanoFeb 26, 2016
  21. 09/16 bisect: extract get_distance() function from code duplicationStephan Beyer, Feb 26, 2016
  22. 10/16 bisect: introduce distance_direction()Stephan Beyer, Feb 26, 2016
  23. 11/16 bisect: make total number of commits globalStephan Beyer, Feb 26, 2016
  24. 12/16 bisect: rename count_distance() to compute_weight()Stephan Beyer, Feb 26, 2016
  25. 13/16 bisect: prepare for different algorithms based on find_allStephan Beyer, Feb 26, 2016
  26. 14/16 bisect: use a modified breadth-first search to find relevant weightsStephan Beyer, Feb 26, 2016
  27. Junio C HamanoFeb 26, 2016
  28. Stephan BeyerFeb 26, 2016
  29. 15/16 bisect: compute best bisection in compute_relevant_weights()Stephan Beyer, Feb 26, 2016
  30. 16/16 bisect: get back halfway shortcutStephan Beyer, Feb 26, 2016
  31. Pranit BauvaMar 20, 2016
  32. Stephan BeyerMar 21, 2016
  33. Christian CouderMar 22, 2016
  34. Pranit BauvaMar 22, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.