-
Notifications
You must be signed in to change notification settings - Fork 341
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
Investigate synchronization of repos into the VMR (git-wise) #10257
Comments
I have investigated various ways how we could build the mono repo. This is a report of what I was going through. Submodules ℹ️How it works EvaluationThis one receives a lot of bad rep online as-is already but the reasons we care about and why we will not go this way are:
Subtree ℹ️How it works Evaluation
Subrepo ℹ️How it works Evaluation
There is a comprehensive comparison between various benefits and shortcomings here. From these points of view, it seems that custom solution might be the best way to go, however subrepo is not the one neither. It is actually very similar to what we have though with the Custom solutionI went further and investigated whether we can achieve what we want with vanilla git and keep it simple. It was important that:
The investigations were done as part of #9604 and the result is that we can assemble a good combination of The result was a PoC including:
Using this, I further ran a month-long synchronization test to see if everything works well. The commands we are going with are surprisingly simple. The patch is created in the most
The patch is then applied:
It took some testing to figure out the right combination of all of the different ways you can create and apply a patch but this simple solution seems to work great. Even patches that are few GBs large work without a problem. |
Context
Based on the design document, we will need to synchronize changes from individual repos into a given path in the VMR. Additionally, we have further requirements on how to synchronize the files. There are several ways to approach this in git (submodule, subtree, subrepo, custom..) and we should investigate this.
Additional requirements
Goals
The text was updated successfully, but these errors were encountered: