From: Lars Hjemli Date: Sat, 02 Jun 2007 07:13:55 GMT Subject: Re: [PATCH] Let .git/config specify the url for submodules Message-ID: <8c5c35580706020013g2a4039fcsdf8974da8cd4c2c2@mail.gmail.com> In-Reply-To: <7vfy5bzby1.fsf@assigned-by-dhcp.cox.net> On 6/1/07, Junio C Hamano wrote: > Linus Torvalds 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