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

Re: Git import of the recent full enwiki dump

From
Shawn O. Pearce <spearce@spearce.org>
Date
Apr 17, 2010, 00:53 UTC
Message-ID
<20100417005342.GA8475@spearce.org>
In-Reply-To
<20100417004852.GA32053@post.servercare.de>
Sebastian Bober <sbober@servercare.de> wrote:
Show 9 quoted lines
> The question would be, how the commits and the trees are laid out.
> If every wiki revision shall be a git commit, then we'd need to handle
> 300M commits. And we have 19M wiki pages (that would be files). The tree
> objects would be very large and git-fast-import would crawl.
> 
> Some tests with the german wikipedia have shown that importing the blobs
> is doable on normal hardware. Getting the trees and commits into git
> was not possible up to now, as fast-import was just to slow (and getting
> slower after 1M commits).

Well, to be fair to fast-import, its tree handling code is linear scan based, because that's how any other part of Git handles trees.

If you just toss all 19M wiki pages into a single top level tree, that's going to take a very long time to locate the wiki page talking about Zoos.

> I had the idea of having an importer that would just handle this special
> case (1 file change per commit), but didn't get around to try that yet.

Really, fast-import should be able to handle this well, assuming you aren't just tossing all 19M files into a single massive directory and hoping for the best. Because *any* program working on that sort of layout will need to spit out the 19M entry tree object on each and every commit, just so it can compute the SHA-1 checksum to get the tree name for the commit.

-- 
Shawn.
Previous: Sebastian BoberNext: Sebastian Bober
Message 4 of 12 in “Git import of the recent full enwiki dump”
  1. Richard HartmannApr 16, 2010
  2. Sverre RabbelierApr 17, 2010
  3. Sebastian BoberApr 17, 2010
  4. Shawn O. PearceApr 17, 2010
  5. Sebastian BoberApr 17, 2010
  6. Sam VilainApr 17, 2010
  7. Sebastian BoberApr 17, 2010
  8. Sam VilainApr 17, 2010
  9. Sebastian BoberApr 17, 2010
  10. Richard HartmannApr 17, 2010
  11. Shawn O. PearceApr 17, 2010
  12. Sebastian BoberApr 17, 2010

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.