From: Jakub Narebski Date: Sat, 16 Dec 2006 09:57:36 GMT Subject: Re: [RFC] Submodules in GIT Message-ID: In-Reply-To: Torgil Svensson wrote: > On 12/16/06, Jakub Narebski wrote: >>> Now it doesn't looks like trees/blobs anymore so maybe a link object >>> is handy: >>> README >>> 100644 blob REPORTING-BUGS >>> 100644 link AUTHORS >>> 040000 tree arch >>> 040000 tree block >>> 040000 link misc This would be (using the submodule original proposal) 140000 link misc >>> link-object: >>> >>> >> >> What do you need for in link-object? Wouldn't you >> use usually the sha1 of top tree of a commit, which is uniquely defined >> by commit object, so you need only ? >> > > 1. "Sparse" repository's - In my example, I want to cherry-pick > header-files or binary-files from different projects without fetching > all, potentially huge, submodules in their entirety. Imaging having X, > kernel, gcc, gtk and libc6 as sub-projects and you really only care > about some header files. > > 2. Super-module directory-hierarchy independent from submodules. > Super-project want to have the header-files and binaries it's own way. > This also gives version controlled file-collections, the "release > case" in my example - collecting different binaries and header-files > from different submodules together in a new directory-structure, add > some documentation and configuration files and get the whole thing > under strong version-control down to the beginning of time for each > little component. All fine, but this does not and I think cannot protect us from the fact that we can have which doesn't match . I think it would be better to have sparse/partial checkout first. But that is just my idea. Because with which is not sha1 of commit tree you might loose (I think) the ability to merge, for example your changes to submodule with upstream. > 3. Super-module development independent of submodules - If we have the > tree/blob-object with all it contents in the database many > git-operations can act as the link (commit) wasn't there since we have > access to all relevant data to work with. This makes it easy to clone > the super-project and work on it seamlessly without having to care > about submodules or mapping up submodule repository's (unless you want > to modify the links or the data underneath it of course). This is I think irrelevant to the fact if we have only , or link object and also -- Jakub Narebski Warsaw, Poland ShadeHawk on #git