From: Junio C Hamano Date: Tue, 08 Jul 2008 02:42:29 GMT Subject: Re: [PATCH] fix "git-submodule add a/b/c/repository" Message-ID: <7v7ibxxfje.fsf@gitster.siamese.dyndns.org> In-Reply-To: <4872CF86.5050702@gmail.com> Mark Levedahl writes: > Sylvain Joyeux wrote: >> >> Redo the prep work, the clone and now >> >> git submodule add dir0/dir1/init >> >> (i.e. don't expect dir0/dir1/init to be the clone of ./init, that was just a >> shortcut for the test. Expect it to be a clone of "something, somewhere") >> >> > Per the man-page, > git submodule [--quiet] add [-b branch] [--] [] > > which means, that the *repository* url is mandatory, the path is > optional. What you specifically asked git-submodule to do was to > *clone* from dir0/dir1/init, and because you gave no path to put the > submodule in, git-submodule deduced the name as "init", and cloned to > there. I'd like to hear clarifications on two counts, please? (1) If Sylvain wanted to have that appear at dir0/dir1/init not init, would it have been sufficient to give that path twice (once for and another for parameter) to make things work as expected? (2) Is it generally considered a sane use case to specify an existing repository inside the working tree of a superproject as a submodule using "git submodule add" like Sylvain's example did? I would have understood if the command were "git add dir0/dir1/init", but I have this vague recolleciton that "git submodule add" is about telling our repository about a submodule that comes from _outside_.