Subject: serving git with both "git:" and "http:" and submodules

From: Boaz Harrosh <[email-masked]>
Date: Wed, 14 Jul 2010 18:29:51 +0300

I have a public tree that I maintain for users. The tree is consisted
of a main-tree and a submodule tree which is also served from the same
server.

The main tree:
git://my-domain.org/my-tree/.git
The sub-tree:
git://my-domain.org/my-tree/sub/.git

in my .gitmodule I have the usual
[submodule "sub"]
        url = git://my-domain.org/my-tree/sub/.git

So smart people using git will just do:
1. $ git clone git://my-domain.org/my-tree/.git
2. $ git submodule init
3. $ git submodule update

And all is well... But smart ass corporate people would not use "git:"
protocol because of fire-walls and for them I have a dumb "http:" export
as:
1. $ git clone http://my-domain.org/trees/my-tree/.git

With them, step 3 above will not work. My current instructions
for them is that after the step 2 "git submodule init" they should
manually edit my-tree/.git/config and change to:
[submodule "sub"]
-        url = git://my-domain.org/my-tree/sub/.git
+        url = http://my-domain.org/trees/my-tree/sub/.git

And then do step 3 to clone the sub-module.

So my question is: Can I automate this so people with "http:"
clones are not forced to manually edit their config files?
(Some users are just not up to it)

Thanks, (Sorry if that has been raised before. Couldn't find any.)
Boaz