Subject: Re: Git files data formats documentation

From: A Large Angry SCM <[email-masked]>
Date: Sat, 05 Aug 2006 10:31:09 -0700

Shawn Pearce wrote:
> A Large Angry SCM <[email-masked]> 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.