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

Re: Why so much time in the kernel?

From
Keith Packard <keithp@keithp.com>
Date
Jun 16, 2006, 17:29 UTC
Message-ID
<1150478968.6983.7.camel@neko.keithp.com>
In-Reply-To
<9e4733910606161000t53328571u10a350eca894ccdc@mail.gmail.com>
On Fri, 2006-06-16 at 13:00 -0400, Jon Smirl wrote:
> Is it a crazy idea to read the cvs files, compute an sha1 on each
> expanded delta and then write the delta straight into a pack file? Are
> the cvs and git delta formats the same? What about CVS's forward and
> reverse delta use?

At this point, merging blobs into packs isn't a significant part of the computational cost. parsecvs is spending all of its time in the quadratic traversal of the diff chains; fixing that to emit all of the versions in a single pass should speed up that part of the conversion process dramatically.

>  While this is going on, track the
> branches/changsets in memory and then finish up by writing these trees
> into the pack file too. This should take no more ram than cvsps needs
> currently.

cvsps drops too much state on the floor making branch point and branch contents inaccurate. What I'm hoping is that I can figure out a way to discard most of the per-version information by computing tree objects in reverse order, saving only the tree sha1 and other per-commit info, then stitch the commits together using that, without needing the full per-file data.

-- 
keith.packard@intel.com
Previous: Jakub NarebskiNext: Jon Smirl
Message 7 of 11 in “Why so much time in the kernel?”
  1. Jon SmirlJun 16, 2006
  2. Linus TorvaldsJun 16, 2006
  3. Jon SmirlJun 16, 2006
  4. Linus TorvaldsJun 16, 2006
  5. Jon SmirlJun 16, 2006
  6. Jakub NarebskiJun 16, 2006
  7. Keith PackardJun 16, 2006
  8. Jon SmirlJun 16, 2006
  9. Keith PackardJun 16, 2006
  10. Nicolas PitreJun 16, 2006
  11. Linus TorvaldsJun 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.