git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC] reverse the pack-objects delta window logic

From
Junio C Hamano <junkio@cox.net>
Date
Apr 27, 2006, 05:04 UTC
Message-ID
<7vejzjmwwr.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0604262210120.18520@localhost.localdomain>
Nicolas Pitre <nico@cam.org> writes:
Show 7 quoted lines
>> And actually I'm not sure how to solve that without walking the tree 
>> up to the top each time, which I want to avoid as much as possible.
>
> Well, that seems to be unavoidable.
>
> Reversing the window logic isn't that much of a good idea after all.
> ...
Show 8 quoted lines
> Then there is the possibility of having a delta "branch" with maximum 
> depth meaning that the trunk for that branch may not be deltified. But 
> if a later objects to come does constitute a better delta base for the 
> object in the middle of that branch then the branch will be broken in 
> the middle to be transplanted onto the new base as explained previously.  
> Which means that the initial trunk no longer has a maximum depth and some
> objects that were skipped because of the depth limit could now have been
> tested, leading to suboptimal delta matching.
Good analysis, and I tend to agree with your conclusion.

BTW, Geert mentioned on the #git channel that about half the filepair git-pack-objects asks diff_delta() to try have long sequences of matching bytes at the beginning and at the end. It might be worthwhile if we can take an advantage of it, whichever delta algorithm we would use.

Previous: Nicolas Pitre
Message 9 of 9 in “reverse the pack-objects delta window logic”
  1. reverse the pack-objects delta window logicNicolas Pitre, Apr 26, 2006
  2. Junio C HamanoApr 26, 2006
  3. Nicolas PitreApr 26, 2006
  4. Nicolas PitreApr 26, 2006
  5. Nicolas PitreApr 27, 2006
  6. use delta index data when finding best delta matchesNicolas Pitre, Apr 27, 2006
  7. Junio C HamanoApr 28, 2006
  8. Nicolas PitreApr 28, 2006
  9. Junio C HamanoApr 27, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.