Re: [PATCH] Let .git/config specify the url for submodules
- From
- Lars Hjemli <hjemli@gmail.com>
- Date
- Jun 2, 2007, 07:13 UTC
- Message-ID
- <8c5c35580706020013g2a4039fcsdf8974da8cd4c2c2@mail.gmail.com>
- In-Reply-To
- <7vfy5bzby1.fsf@assigned-by-dhcp.cox.net>
On 6/1/07, Junio C Hamano <junkio@cox.net> wrote:
Show 40 quoted lines
> Linus Torvalds <torvalds@linux-foundation.org> writes: > > > On Fri, 1 Jun 2007, Lars Hjemli wrote: > > ... > > Ack. I think the natural thing for a lot of cases is the trivial "module > > name == path" case, so having to have > > > > [path "kernel"] > > module = kernel > > > > for that case just sounds unnecessary. > > > > That said, I wonder if it wouldn't be more natural to do things the other > > way around, because quite often a "module" (under CVS conventions) is a > > *set* of directories, so with that in mind, it might be better to have the > > mapping be something like this: > > > > [module "infrastructure"] > > submodule = lib > > submodule = build > > > > [submodule "lib"] > > url = git://xyzzy/lib-1.2.3 > > > > [submodule "build"] > > url = git://xyzzy/build-0.61 > > > > and make the rule be: > > - submodules are named by their paths (ie "path == submodule") > > - a module is a set of such submodules/paths > > - if no "module" is defined, the default is to just use the > > path/submodule name > > I take that if you do want to name a submodule differently from > its (currently in-tree) path, you would do something like... > > [submodule "xyzzylib"] > path = lib > url = git://xyzzy/lib-1.2.3 >
The reason I wanted to use
[path "lib"] submodule=xyzzylib url=git://xyzzy/lib-1.2.3
is that the git-submodule command always starts out with the submodule path, trying to map that to an url or a submodule name. My proposal allows
$ name=$(GIT_CONFIG=.gitmodules git-config path."$path".submodule) $ url=$(GIT_CONFIG=.gitmodules git-config path."$path".url)
Then Sven suggested to create a submodule section for the url, which would allow
$ name=$(GIT_CONFIG=.gitmodules git-config path."$path".submodule) $ url=$(GIT_CONFIG=.gitmodules git-config submodule."$name".url)
But I don't see an easy way to do the mapping from path to url/submodule with:
[submodule "xyzzylib"] path=lib url=git://xyzzy/lib-1.2.3
Suggestions?
-- larsh