feat(gerrit): rework scm implementation#38966
Open
felipecrs wants to merge 99 commits intorenovatebot:mainfrom
Open
feat(gerrit): rework scm implementation#38966felipecrs wants to merge 99 commits intorenovatebot:mainfrom
felipecrs wants to merge 99 commits intorenovatebot:mainfrom
Conversation
41d6798 to
b5494ef
Compare
b5494ef to
75fdfeb
Compare
…implify-gerrit-scm
12 tasks
…implify-gerrit-scm
Signed-off-by: Felipe Santos <felipe.santos@ericsson.com>
…errit-fix-create-pr
…implify-gerrit-scm
Contributor
Author
|
This PR is in a good, functional state (tested in against a few repositories). But it shouldn't be reviewed as it currently depends on this other one to be merged first: |
Contributor
Author
Old benchmarks from Oct 30, 2025I ran some tests against a relatively big repository: And here are some early results:
Test method:
Here's a newer one. |
This file contains hidden or 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
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.
Important
This PR currently depends on:
createPr()#39250And is best reviewed after it is merged. The actual diff can be seen here.
Because of the alarming number of changed lines, here is the actual number when not considering the PRs above and tests:
Changes
This significantly refactors the Gerrit SCM to leverage the Default SCM implementation as much as possible.
On the local git repository initialization, all open changes are now fetched as remote branch references. I call these virtual branches.
The mindset here is to make the local Gerrit clone behave as similarly as possible to a GitHub/GitLab clone, so that we can reuse most of the logic from Default SCM.
The benefits are:
This PR is followed up by the PR below, which completes the optimization cycle for Gerrit:
Here's a comparative benchmark.
Context
Please select one of the below:
AI assistance disclosure
Did you use AI tools to create any part of this pull request?
Please select one option and, if yes, briefly describe how AI was used (e.g., code, tests, docs) and which tool(s) you used.
Claude Opus 4.6 was used to implement tests and help to review the code.
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via:
The public repository: https://review.gerrithub.io/q/project:felipecrs/renovate-repro-spring-framework