-
-
Notifications
You must be signed in to change notification settings - Fork 313
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
initial merge-base support #1557
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Byron
force-pushed
the
merge-base
branch
4 times, most recently
from
August 26, 2024 09:04
bdfc717
to
4fc6af8
Compare
Translate first tests from the Git test suite and set up expectations.
…back with looked up commit data.
…ta()`. It's another way to insert parents, and tuned for the needs of merge-base. `insert_data()` makes it easy to insert data for a single commit.
That way, operations that need a commit-graph (graph data structure) can be run more efficiently as they won't consume the graph, but can reuse it.
Byron
force-pushed
the
merge-base
branch
2 times, most recently
from
August 26, 2024 11:20
a6b4db3
to
5ae0985
Compare
A simple method to obtain the merge-base between two commits.
For now it only supports the standard merge-base, but more derivatives can be added easily on demand.
That way, the cost for creating intermediate commit objects are cut in half.
Byron
force-pushed
the
merge-base
branch
4 times, most recently
from
August 26, 2024 16:00
df06b24
to
3d57f82
Compare
Get an idea about he size of the graph.
In practice, what really matters is to reuse as much of the previous computation as possible. Re-using the graph (or its menory) doesn't do much, but reusing the parsed commits would be a huge benefit when running many queries after another.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Translate tests from the Git test suite and assure that we produce the same results.
Tasks
Repository::merge_base()
gix merge-base
for real-world scenariousgit merge-base --independent 2ecedd756908 d2360a398f0b 1253935ad801 160bab43419e 0e2209629fec 1d0e16ac1a9e
on the linux kernelFollowUp
Research
The commit-graph greatly accelerates the operation.
Performance Comparison
gix
without commit-graph is exactly as fast as Git. however, with commit-graph Git is 1.6x faster.