On 02/10/2018 06:47, Michele Hallak wrote:
Hi,
I am getting out of idea about how to change the methodology we are using in order to ease our integration process... Close to despair, I am throwing the question to you...
We have 6 infrastructure repositories [A, B, C, D, E, F ?].
Each project [W,X,Y,Z] is composed of 4 repositories [1-4], each one using one or two infrastructure repositories as sub-modules. (Not the same)
e.g. W1-W4; with say B & D as submodules
The infrastructure repositories are common to several projects and in the case we have to make change in the infrastructure for a specific project, we are doing it on a specific branch until properly merged.
Do you also have remotes setup that provide backup and central authority
to the projects..?
Everything is fine (more or less) and somehow working.
Good..
Now, we have one project that will be developed in another site and with another git server physically separated from the main site.
Is it networked? Internal control, external internet, sneakernet?
I copied the infrastructure repositories in the new site and removed and add the sub-modules in order for them to point to the url in the separated git server.
Every 2 weeks, the remotely developed code has to be integrated back in the main site.
My idea was to format GIT patches, integrate in the main site, tag the whole thing and ship back the integrated tagged code to the remote site.
... and now the nightmare starts:
yep, you have lost the validation & verification capability of Git's
sha1/oid and DAG.
Since the .gitmodules is different, I cannot have the same SHA and then same tag and I am never sure that the integrated code is proper.
Remotes, remotes...
May be there is a simple solution that I don't know about to my problem? Is there something else than GIT patches? Should I simply ship to the remote site the code as is and change the submodules each time?
I think the solution you need is `git bundle`
https://git-scm.com/docs/git-bundle. This is designed for the case where
you do not have the regular git transport infrastructure. Instead it
records the expected data that would be 'on the wire', which is then
read in at the far end. The bundle can contain excess data to ensure
overlap between site transmissions.
You just run the projects in the same way but add the courier step for
shipping the CD, or some password protected archive as per your security
needs.
Everything is should be just fine (more or less) and somehow it will
just work. ;-)
--
Philip
https://stackoverflow.com/questions/11792671/how-to-git-bundle-a-complete-repo