Subject: Re: Re-Transmission of blobs?

From: Junio C Hamano <[email-masked]>
Date: Wed, 11 Sep 2013 10:14:54 -0700

Josef Wolf <[email-masked]> 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.

>> There are some work being done to optimize this further using
>> various techniques, but they are not ready yet.

And this still stands.