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

Re: cvs import

From
Shawn Pearce <spearce@spearce.org>
Date
Sep 14, 2006, 15:50 UTC
Message-ID
<20060914155003.GB9657@spearce.org>
In-Reply-To
<4508EA78.5030001@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> wrote:
>  The only difference between our SCMs that might be difficult
> to paper over in a universal dumpfile is that SVN wants its changesets
> in chronological order, whereas I gather that others would prefer the
> data in dependency order branch by branch.
This really isn't an issue for Git.

Originally I wanted Jon Smirl to modify the cvs2svn code to emit only one branch at a time as that would be much faster than jumping around branches in chronological order. But it turned out to be too much work to change cvs2svn. So git-fast-import (the Git program that consumes the dump stream from Jon's modified cvs2svn) maintains an LRU of the branches in memory and reloads inactive branches as necessary when cvs2svn jumps around.

It turns out it didn't matter if the git-fast-import maintained 5 active branches in the LRU or 60. Apparently the Mozilla repo didn't jump around more than 5 branches at a time - most of the time anyway.

Branches in git-fast-import seemed to cost us only 2 MB of memory per active branch on the Mozilla repository. Holding 60 of them at once (120 MB) is peanuts on most machines today. But really only 5 (10 MB) were needed for an efficient import.

I don't know how the Monotone guys feel about it but I think Git is happy with the data in any order, just so long as the dependency chains aren't fed out of order. Which I think nearly all changeset based SCMs would have an issue with. So we should be just fine with the current chronological order produced by cvs2svn.

-- 
Shawn.
Previous: Michael HaggertyNext: Jakub Narebski
Message 16 of 38 in “Re: cvs import”
  1. Jon SmirlSep 13, 2006
  2. Martin LanghoffSep 13, 2006
  3. Markus SchiltknechtSep 13, 2006
  4. Oswald BuddenhagenSep 13, 2006
  5. Martin LanghoffSep 13, 2006
  6. Michael HaggertySep 14, 2006
  7. Jon SmirlSep 14, 2006
  8. Michael HaggertySep 14, 2006
  9. Martin LanghoffSep 14, 2006
  10. Michael HaggertySep 14, 2006
  11. Jon SmirlSep 14, 2006
  12. Martin LanghoffSep 14, 2006
  13. Markus SchiltknechtSep 13, 2006
  14. Jon SmirlSep 13, 2006
  15. Michael HaggertySep 14, 2006
  16. Shawn PearceSep 14, 2006
  17. Jakub NarebskiSep 14, 2006
  18. Shawn PearceSep 14, 2006
  19. Jon SmirlSep 14, 2006
  20. Michael HaggertySep 14, 2006
  21. Jakub NarebskiSep 14, 2006
  22. Jon SmirlSep 14, 2006
  23. Markus SchiltknechtSep 15, 2006
  24. Shawn PearceSep 16, 2006
  25. Oswald BuddenhagenSep 16, 2006
  26. Nathaniel SmithSep 16, 2006
  27. Nathaniel SmithSep 13, 2006
  28. Daniel CarosoneSep 13, 2006
  29. Daniel CarosoneSep 13, 2006
  30. Keith PackardSep 13, 2006
  31. Nathaniel SmithSep 14, 2006
  32. Jon SmirlSep 14, 2006
  33. Daniel CarosoneSep 14, 2006
  34. Shawn PearceSep 14, 2006
  35. Daniel CarosoneSep 14, 2006
  36. Petr BaudisSep 14, 2006
  37. Shawn PearceSep 14, 2006
  38. Shawn PearceSep 14, 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.