Re: Git files data formats documentation
From: A Large Angry SCM <hidden>
Date: 2016-06-15 22:42:35
Shawn Pearce wrote:
A Large Angry SCM [off-list ref] wrote:quoted
This information may be useful for reading and writing the various Git files.[snip]quoted
# /* - - - - - - - - - - - - *\ # | This reflects version 3 pack files | # \* - - - - - - - - - - - - */[snip]quoted
# /* - - - - - - - - - - - - *\ # | This reflects version 2 pack files | # \* - - - - - - - - - - - - */Thanks for taking the time to write these out. The pack delta formats were particularly helpful as it caused me to go back and look at the unpacking code in jgit. Apparently I wasn't handling the version 2 pack file correctly as I didn't support copy-from-result; I had an infinite loop if the base didn't decompress in one read (never happen right now, but could in the future); and apparently my insert opcode implementation was causing an infinite loop. Nasty bugs. I need to get more unit tests written apparently. :-)
Keep in mind that the git-core code for reading version 2 or version 3 pack files does _not_ handle copy-from-result correctly.