gix merge-base for branch-details #4757
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces the last remnants of
git2withgixto have fully gix-powered branch details.Besides being functionally the same, I'd hope that this is faster particularly when a commit-graph cache
is available.
Tasks
gixgix::Repository::merge_base()gixto a commit frommainFollowUp
Performance Changes
This version is 7% slower than the one with
git2and I believe it's due togit2being able to cache fully parsed objects, whereasgixhas to rebuild certain datastructures and re-parse objects each time.gixcan also learn to essentially cache more and reuse that between runs, and that would certainly provide very decent speedups, but also is some effort I think we can save right now to not hold the PR.It's also notable that the merge-base computation dominates the overall time taken.
After writing a commit-graph cache with
git commit-graph write --reachableand re-running the benchmark above,gixis 19% faster than thegit2version.In the example,
gixnow uses about 100MB less memory (550MB vs 650MB).