Subject: Re: Re-Transmission of blobs?

From: Josef Wolf <[email-masked]>
Date: Thu, 12 Sep 2013 09:42:41 +0200

On Mi, Sep 11, 2013 at 10:14:54 -0700, Junio C Hamano wrote:
> 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.

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