From: A Large Angry SCM Date: Sat, 05 Aug 2006 17:31:09 GMT Subject: Re: Git files data formats documentation Message-ID: <44D4D5DD.8070908@gmail.com> In-Reply-To: <20060805162233.GA19909@spearce.org> Shawn Pearce wrote: > A Large Angry SCM wrote: >> This information may be useful for reading and writing the various Git >> files. > [snip] >> # /* - - - - - - - - - - - - *\ >> # | This reflects version 3 pack files | >> # \* - - - - - - - - - - - - */ > [snip] >> # /* - - - - - - - - - - - - *\ >> # | 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.