Frawley, Sarah <sarah.frawley <at> intel.com> writes:
> Correct when I referred to 10+ layers I meant nested repositories 
which make up a large hierarchy.  Some
> repositories are repeated across the hierarchy.  We check-out 
submodules to tag versions (as opposed
> to master branch).  If we need to roll out a particular change across 
a hierarchy (e.g. 60 repos) then
> every level in the hierarchy needs to pick up new submodule tags.
> 
> The main 2 issues that we see are:
> 
> 1. Enforcement of absolute paths in git submodules - I am currently 
trialing using a pre-commit hook to
> highlight this issue to users so that they can fix their submodule 
urls to relative paths.
> 

We enforced the config file instead (containing the host, port and 
username) because we use Gerrit. So, our urls are just
ssh:\\<server>:<repo>

> 2. Slowness Integrating updates to submodule hierarchy -I have been 
looking at ways of automating such a
> roll out - this can be useful for new project setups or for rolling 
out an update to all repos and quickly
> integrating it into the submodule hierarchy.  The link below shows 
something similar however it checks
> out a master branch of each submodule in its hierarchy. 
https://chrisjean.com/recursively-updating-git-submodules/
> 

I haven't been able to check performance at our site yet.

> Thanks,
> Sarah 

I am planning on using submodules in a way, where I can specify a 
configuration of repos with tags, and rebuild the submodule tree, when 
selecting a configuration on the top level.

But, yet I have found no easy way to select the tag in a subrepo. I 
would like the .gitmodules to accept tag instead of branch. I think 
there is very little difference between specifying a branch or a tag, 
but it is more convenient to have the release version as a tag.

So, if a product A, consist of subcomponents a1, a2 and a3, the version 
v1.1 of product A will have a configuration saying: a1, tag=v0.4; a2, 
tag=v1.0; a3, tag=v2.0

Subcomponent can be both a pre-built binary or a shared/common source 
base, or a complete 3rd party repository.

Is this comparable to your situation?

I am currently working on editing the git-submodules to add -t (as in 
tag). I need to find an easy way to switch between tracking a branch and 
locking to tag, though.

BR
/Mattias

Reply via email to