On Mi, Sep 11, 2013 at 10:14:54 -0700, Junio C Hamano wrote: > Josef Wolf <jw@xxxxxxxxxxxxx> writes: > > On Di, Sep 10, 2013 at 10:51:02 -0700, Junio C Hamano wrote: > >> Consider this simple history with only a handful of commits (as > >> usual, time flows from left to right): > >> > >> E > >> / > >> A---B---C---D > >> > >> where D is at the tip of the sending side, E is at the tip of the > >> receiving side. The exchange goes roughly like this: > >> > >> (receiving side): what do you have? > >> > >> (sending side): my tip is at D. > >> > >> (receiving side): D? I've never heard of it --- please give it > >> to me. I have E. > > > > At this point, why would the receiving side not tell all the heads it knows > > about? > > It did. The receiving end had only one branch whose tip is E. It > may have a tracking branch that knows where the tip of the sending > end used to be when it forked (which is C), so the above may say "I > have E and C". It actually would say "I have B and A and ..." for a > bounded number of commits, but that does not fundamentally change > the picture---the important point is it is bounded and there is a > horizon. Therefore, the sending sinde has all information it needs to do any optimizations you can think of... > >> There are some work being done to optimize this further using > >> various techniques, but they are not ready yet. > > And this still stands. Do you have a pointer or something? I'd like to check out whether I can contribute to this work. -- Josef Wolf jw@xxxxxxxxxxxxx -- 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