From: Kevin Ballard Date: Thu, 17 Jul 2008 20:42:01 GMT Subject: Re: Considering teaching plumbing to users harmful Message-ID: In-Reply-To: <200807172234.19146.jnareb@gmail.com> On Jul 17, 2008, at 1:34 PM, Jakub Narebski wrote: > On Thu, 17 July 2008, Kevin Ballard wrote: >> On Jul 17, 2008, at 1:04 PM, Jakub Narebski wrote: >> >>> Git submodules are roughly equivalent to svn:externals with peg >>> revisions; I mean here that they refer not to some branch in some >>> external repository, but to specific revision. This is the only >>> sane >>> design, as it assures that when checking out some historical >>> revision, >>> the state that is checked out will be the same for everybody. >>> >>> Please take into account however that submodules are quite new >>> feature, and while underlying engine is solid, interface (UI) needs >>> some polishing (and use cases). >> >> There is one facet of submodules that annoys me, because it prevents >> me from using them as a replacement for svn:externals. Namely, the >> submodule refers to a specific repository, but not a path within that >> repository. I work with svn repos that use svn:externals to peg >> revisions (as is appropriate) but they all refer to various paths >> within the other repositories, and the only way I can deal with that >> is to throw symlinks everywhere. > > I don't quite understand. At the lowest, "gitlink" level submodule > entry is just having _commit_ object in place of directory. And of > course this commit object refers to top tree (top directory) in > a subproject. > > If you have subproject B with the following file structure > > B/foo > B/bar/baz > > and you have (super)project A, which contains B as subproject at path > sub-b, and has some files itself, the directory sytucture would look > like this: > > A/quux > A/sub-b/foo > A/sub-b/bar/baz > > > What you want, I guess, is some a bit weird for me mixture of > submodule > and partial (subtree) checkout... and the latter is not implemented > yet > (I say "yet" because there was some preliminary implementation of > subtree checkout on git mailing list). It seems you understand what I'm saying. The only way I can mimic it is to make the submodules actually live in some hidden directory .foo and then scatter symlinks everywhere. -Kevin Ballard -- Kevin Ballard http://kevin.sb.org kevin@sb.org http://www.tildesoft.com