Re: Understanding Binary Deltas within Packfile
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Mar 20, 2018, 16:03 UTC
- Message-ID
- <CACsJy8ABgZy=eJ7niUysb2XZ3qUr3J+jmh_5YWZ1ZDiFCrb0tA@mail.gmail.com>
- In-Reply-To
- <f301d093-af93-016b-79b9-3102475260cf@arlut.utexas.edu>
On Tue, Mar 20, 2018 at 4:43 PM, Luke Robison <robison@arlut.utexas.edu> wrote:
Show 6 quoted lines
> Is there any documentation of the contents of the binary delta datain a > packfile, and how to interpret them? I found > https://github.com/git/git/blob/master/Documentation/technical/pack-format.txt > documenting the packfile itself, but the "compressed delta data" seems > largely undocumented. The source code of > https://github.com/git/git/blob/master/diff-delta.c is pretty dense.
The output is consumed by patch_delta() in patch-delta.c if I'm not mistaken. This function is less than 100 lines, probably much easier to see the delta format.
Show 19 quoted lines
> This > is what I've got so for: > > +-------------+ > | Varint src_size > | Varint trg_size > | 1-byte inscnt > | N-bytes up to 16 bytes of trg_buf > | > | A series of Operations > | > +------------- > > > Any details on how to interpret the opcodes would be greatly appreciated. > > Thanks, > Luke >
-- Duy