Martin Waitz <tali@xxxxxxxxxxxxxx> writes: > On Mon, Nov 20, 2006 at 04:10:50PM -0800, Junio C Hamano wrote: > >> 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. > > This at least seems to work already. > The UNINTERESTING flag is recursively set for the submodule > commits while walking the object chain. I think that is fine as long as we somehow enforce the topology of submodule to be similar to the toplevel topology. Otherwise I suspect it leads to unintuitive behaviour. Suppose that the ancestry chain for the toplevel are A, A~1, A~2 and you asked for "A~2..A". A submodule is bound at tree "sub/" and suppose A:sub/ == B, A~1:sub/ == C, and A~2:sub/ == D. Now further suppose the ancestry chain for B, C and D are like this: o---C / \ ...o---o---D---B A naive implementation of "--objects A~2..A" would propagate UNINTERESTING to D and mark B and C unmarked. Would it however be reasonable to include commits marked as 'o'? I am not trying to be negative here, but just raising things that I did not think through when I tried to tackle it the last time... - 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