geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <>
Subject Re: Accepting proposals regarding early git adoption
Date Sat, 03 Dec 2011 19:23:52 GMT
Hi David!

Glad to discuss this and update my knowledge with your help!

I've tried to use git-submodules back a few years (sub 1.6). Back then it was pretty unusable.
Maybe something has changed which went under my radar, but imo the restrictions (from the
back of my head) which we must check if they still apply are:

1.) each git-submodule is still an own GIT repo. There is imo no move possible out of the
submodules without loosing history

2.) each git-submodule is still an own GIT repo. Maybe this got added lately, but they imo
don't share git-remotes. All this needs to maintained manually. Is there a way now to update
all the remotes for all contained git-submodules in 1 step?

3.) nested git-submodules are NOT nested on the disk in the object store! They are imo in
fact independent GIT repos and there is just a kind of 'symlink' (gitlink resp via the .gitsubmodules:
"the submodule support just stores the submodule repository location and
commit ID") to include them 'inplace'. 

4.) you can clone/checkout 'nested' git-submodules since (1.6.4 or even later?) automatically,
but you cannot push isn't?. This might have been fixed?

Also see here:
> git submodule add ~/git/$i $i
> NOTE: Do not use local URLs here if you plan to publish your superproject!
The reason is that you need to use a full git-remote URL here if you publish this. Now let's
consider forking. As far as I've tested out, all the submodules _still_ point (git-remote
origin) to the original repo ^^ Can you please verify that nowadays? This was quite a while
back when I tried it. 

I now found a hint that this maybe work now (though didn't test it myself):
> git clone --recursive URL
5.) The .gitsubmodules file is part or the working set (similar to .gitignore). Thus changing
it (for adopting the remote URL) will change the sha1. 

6.) by using git-submodules you are basically almost always working with a detached HEAD.
Working with detached HEADs is pretty hard to get for git newbies.

7.) git-submodules makes working with branches sometimes pretty ugly. Because any directory
content might not get updated.

Just create a sample project and try to work with it. 

Or try to split Geronimo into smaller pieces with git-submodules and work with it. Would love
to see that a few of those questions are non-issues today!


----- Original Message -----
> From: David Jencks <>
> To:
> Cc: 
> Sent: Saturday, December 3, 2011 7:07 PM
> Subject: Re: Accepting proposals regarding early git adoption
> Hi Mark,
> Your couchdb links don't seem to me to argue for or against what I was 
> suggesting, other than pointing out that unless git project == releasable 
> subproject you'll have an impedance mismatch, which is what I was trying to 
> point out and avoid.
> The git docs certainly seem to 
> indicate that my suggestion should work fine and when I suggested it on the 
> aries list David Bosschart mentioned that JBoss has been using submodules in 
> this way for a long time with great success.
> What's your evidence that submodules won't work for this?

View raw message