From: Jakub Narebski Date: Tue, 21 Nov 2006 00:42:22 GMT Subject: Re: [RFC] Submodules in GIT Message-ID: In-Reply-To: <7v4pstzmk5.fsf@assigned-by-dhcp.cox.net> Junio C Hamano wrote: > Linus Torvalds writes: > >> Now, to get everything to work seamlessly within such a commit thing >> might be a fair amount of work, but I'm not sure you even _need_ to. It >> might be ok to just say "subproject 'xyzzy' differs" in the diff, for >> example, and have some rudimentary support for "git status" etc talking >> about subprojects that need to be committed. > > I agree with the static "diff" part, and probably "checkout" and > "merge" are not all that difficult. > > However, if I recall correctly, it was rather nightmarish to > make this also work for reachability traversal necessary for > pack generation. It was painful enough even when the bind was > at the commit level (which was way simpler to handle), but to do > this the right way, the bind needs to be done at the tree level, > and "rev-list --objects foo..bar" would need some way to limit > the commit ancestry chain of subproject at the same time, by > computing the commit ancestry of the embedded commits in the > trees. Perhaps it would be best to join those two subproject support solutions together: "bind" tree/commit mount header in commit object, and "commit" entry in a tree. But I agree that revision walking needs to be rewamped... well, unless you always have project and subproject in the same repository, and subprojects are branches in the project too... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git