On Tue, Mar 20, 2018 at 7:34 PM, Luke Robison <robison@xxxxxxxxxxxxxxxx> wrote: > On 3/20/2018 11:03 AM, Duy Nguyen wrote: >> >> On Tue, Mar 20, 2018 at 4:43 PM, Luke Robison <robison@xxxxxxxxxxxxxxxx> >> wrote: >>> >>> 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. > > Thank you, that was much easier to read, and I've got my prototype working > now. I also found this site to be quite helpful: > http://stefan.saasen.me/articles/git-clone-in-haskell-from-the-bottom-up/#delta_encoding By the way, I forgot to add, if you want to improve pack-format.txt (since you study it anyway), patches are always welcome. -- Duy