git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git files data formats documentation

From
A Large Angry SCM <gitzilla@gmail.com>
Date
Aug 5, 2006, 17:31 UTC
Message-ID
<44D4D5DD.8070908@gmail.com>
In-Reply-To
<20060805162233.GA19909@spearce.org>
Shawn Pearce wrote:
Show 22 quoted lines
> A Large Angry SCM <gitzilla@gmail.com> 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.

Previous: Shawn PearceNext: Jakub Narebski
Message 8 of 13 in “Git files data formats documentation”
  1. A Large Angry SCMAug 5, 2006
  2. Jon SmirlAug 5, 2006
  3. Junio C HamanoAug 5, 2006
  4. Shawn PearceAug 5, 2006
  5. A Large Angry SCMAug 5, 2006
  6. Junio C HamanoAug 6, 2006
  7. Shawn PearceAug 5, 2006
  8. A Large Angry SCMAug 5, 2006
  9. Jakub NarebskiAug 5, 2006
  10. A Large Angry SCMAug 5, 2006
  11. Jakub NarebskiAug 5, 2006
  12. A Large Angry SCMAug 5, 2006
  13. Nicolas PitreAug 16, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.