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

Re: pack v4 status

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Feb 27, 2007, 22:15 UTC
Message-ID
<Pine.LNX.4.63.0702272314540.22628@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<Pine.LNX.4.64.0702271348260.12485@woody.linux-foundation.org>
Hi,
On Tue, 27 Feb 2007, Linus Torvalds wrote:
Show 17 quoted lines
> On Tue, 27 Feb 2007, Shawn O. Pearce wrote:
> > 
> > We have thus far reformatted OBJ_TREEs with a new dictionary based
> > compression scheme.  In this scheme we pool the filenames and modes
> > that appear within trees into a single table within the packfile.
> > All trees are then converted to use a 22 byte record format:
> > 
> >   - 2 byte network byte order index into the string pool
> >   - 20 byte SHA-1
> 
> Umm. Am I missing something, or is this totally braindamaged?
> 
> Are you really expecting there to never be more than 64k basenames? 
> Trust me, that's a totally broken assumption. Anything that tracks 
> generated stuff will _easily_ have several tens of thousands of random 
> filenames even in a single tree, much less over the whole history of the 
> repository.

The sane thing, of course, is to use some sort of prefix coding, together with an escape code.

Ciao, Dscho

Previous: Linus TorvaldsNext: Nicolas Pitre
Message 3 of 9 in “pack v4 status”
  1. Shawn O. PearceFeb 27, 2007
  2. Linus TorvaldsFeb 27, 2007
  3. Johannes SchindelinFeb 27, 2007
  4. Nicolas PitreFeb 27, 2007
  5. Nicolas PitreFeb 27, 2007
  6. Junio C HamanoFeb 27, 2007
  7. Shawn O. PearceFeb 28, 2007
  8. Nicolas PitreFeb 28, 2007
  9. Shawn O. PearceFeb 28, 2007

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.