Subject: Re: [BUG] resolved deltas

From: Petr Stodulka <[email-masked]>
Date: Thu, 21 Aug 2014 20:25:39 +0200

> <snip>
> Bug is reprodusible since git version 1.8.3.1 (may earlier 1.8.xx, but 
> I don't test it) to actual upstream version.
> This problem "doesn't exists" in version 1.7.xx - or more precisely is 
> not reproducible. "May" this is reproducible
> since commit "7218a215" - in this commit was added assert in file 
> "builtin/index-pack.c" (actual line is 918), but I didn't test this.
Ok so this is reproducible since this commit because of assert().

> Here I am lost. I don't know really what I can do next here, because I 
> don't understand some ideas in code. e.g. searching of child - 
> functions find_delta(), find_delta_children(). Calculation on line 618:
> ----
>     int next = (first+last) / 2;
> ----
> I still don't understand. I didn't find description of this searching 
> algorithm in tech. documentation but I didn't read all yet. However I 
> think that source of problems could be somewhere in these two 
> functions. When child is found, its real_type is set to parent's type 
> in function resolve_delta() on the line 865 and then lasts wait for 
> failure. I don't think that problem is in repository itself [1], but 
> it is possible.
I read history of commits and my idea seems to be incorrect. It seems 
more like some error in repository itself. But I'd rather get opinion 
from someone who knows this code and ideas better.

Regards,
Petr

> [0] https://bugzilla.redhat.com/show_bug.cgi?id=1099919
> [1] git clone https://code.google.com/p/mapsforge/ mapsforge.git