Junio C Hamano wrote: > Linus Torvalds <torvalds@xxxxxxxx> 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 - 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