From: Jan Harkes Date: Fri, 20 Oct 2006 02:46:02 GMT Subject: Re: [PATCH 2/2] Remove unused index tracking code. Message-ID: <20061020024602.GF7162@delft.aura.cs.cmu.edu> In-Reply-To: <7vd58nra64.fsf@assigned-by-dhcp.cox.net> On Thu, Oct 19, 2006 at 07:30:27PM -0700, Junio C Hamano wrote: > Jan Harkes writes: > > > I guess I'll grep through the mailinglists to try to figure out what > > these OFS and REF deltas are and why they behave so differently > > depending on their order in the pack. > > It's been cooking in "next" branch for quite a while. Ah yes, just went through the thread about the git-index-pack breaking on 64-bit systems and the back and forth about the possible complexity of the new code. > It is really simple: > > - if the found union content matches with a reference union initialized > through the sha1 member then deltas[j].obj->type == OBJ_REF_DELTA > must be true. > > - if the found union content matches with a reference union initialized > through the sha1 member then deltas[j].obj->type == OBJ_OFS_DELTA > must be true. ... I guess one of these must be false. But clearly this patch breaks those offset based delta's when we expand random deltas in place. Jan