<opublikowany i wysłany> Torgil Svensson wrote: > On 12/16/06, Jakub Narebski <jnareb@xxxxxxxxx> wrote: >>> Now it doesn't looks like trees/blobs anymore so maybe a link object >>> is handy: >>> README >>> 100644 blob <sha1 of blob> REPORTING-BUGS >>> 100644 link <sha1 of link> AUTHORS >>> 040000 tree <sha1 of tree> arch >>> 040000 tree <sha1 of tree> block >>> 040000 link <sha1 of link> misc This would be (using the submodule original proposal) 140000 link <sha1 of link> misc >>> link-object: >>> <sha1 of commit> >>> <sha1 of tree/blob> >> >> What do you need <sha1 of tree/blob> 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 <sha1 of commit>? >> > > 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 <sha1 of tree/blob> which doesn't match <sha1 of commit>. I think it would be better to have sparse/partial checkout first. But that is just my idea. Because with <sha1 of tree/blob> 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 <sha1 of commit>, or link object and also <sha1 of tree/blob> -- Jakub Narebski Warsaw, Poland ShadeHawk on #git - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html