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

Re: Some tips for doing a CVS importer

From
Jon Smirl <jonsmirl@gmail.com>
Date
Nov 21, 2006, 01:53 UTC
Message-ID
<9e4733910611201753m392b5defpb3eb295a075be789@mail.gmail.com>
In-Reply-To
<46a038f90611201629o39f11f42ye07b86159360b66e@mail.gmail.com>
On 11/20/06, Martin Langhoff <martin.langhoff@gmail.com> wrote:
Show 19 quoted lines
> On 11/21/06, Jon Smirl <jonsmirl@gmail.com> wrote:
> > > I gather this means that the cvs2svn track hasn't been as productive
> > > as expected. Any remaining/unsolvable issues with it? I have been
> > > chronically busy on my e-learning projects, but don't discard coming
> > > back to this when I have some time.
> >
> > Look in this thread
> > [Fwd: Re: What's in git.git]
> >
> > There is a message in there that explains a problem that the cvs2svn
> > people aren't going to fix and it kills git.
>
> I see - thanks for the pointer. Sorry to hear others in the Moz
> project weren't so keen on hearing about alternatives to SVN. Long
> term only something like GIT seems viable for such a large project (in
> terms of community, branches/subprojects and codebase).
>
> Two remaining questions
>  - Where can I get your latest code? :-)

I gave up on my cvs2git code, cvs2svn has been refactored so badly that it was too much trouble tracking. It would be easier to write it again. Most of the smarts from the import process is in the git-fastimport code which Shawn has. cvs2svn underwent a major algorithm change after I wrote the first version of git2svn.

I can probably find the code if you really want it, but it will be leading you off in the wrong direction.

>  - I gather the moz cvs repo has some cases that require getting the
> symbol resolution right. Could this be performed as an extra pass /
> task?

Processing the symbols is integral to deciding how to build the change sets. Right now cvs2svn ignores the symbol dependency information and builds the change sets in a way that forces the mini-branches. That causes 60% of the 2,000 symbols in Mozilla CVS to end up as little branches. Look at the three commit example in the other thread to see exactly what the problem is.

SVN hides the mini branch by creating a symbol like this:

Symbol XXX, change set 70 copy All from change set 50 copy file A from change set 55 copy file B,C from change set 60 copy file D from change set 61 copy file E,F,G from change set 63 copy file H from change set 67

It has to do all of those copies because the change sets weren't constructed while taking symbol dependency information into account.

Symbol XXX can't copy from change set 69 because commits from after the symbol was created are included in change sets 51-69.

Show 8 quoted lines
> Eventually the Moz crowd will outgrow SVN - perhaps we should be
> parsing the SVN dump format instead ;-)
>
> cheers,
>
>
> martin
>
-- 
Jon Smirl
Previous: Martin LanghoffNext: Marko Macek
Message 17 of 30 in “Some tips for doing a CVS importer”
  1. Jon SmirlNov 20, 2006
  2. Martin LanghoffNov 20, 2006
  3. Jon SmirlNov 20, 2006
  4. Martin LanghoffNov 21, 2006
  5. Carl WorthNov 21, 2006
  6. Jon SmirlNov 21, 2006
  7. Shawn PearceNov 21, 2006
  8. lamikrNov 21, 2006
  9. Shawn PearceNov 21, 2006
  10. Robin RosenbergNov 23, 2006
  11. Shawn PearceNov 25, 2006
  12. Petr BaudisNov 21, 2006
  13. Shawn PearceNov 21, 2006
  14. Johannes SchindelinNov 21, 2006
  15. Johannes SixtNov 23, 2006
  16. Martin LanghoffNov 21, 2006
  17. Jon SmirlNov 21, 2006
  18. Marko MacekNov 26, 2006
  19. Jon SmirlNov 26, 2006
  20. Marko MacekNov 26, 2006
  21. Jon SmirlNov 26, 2006
  22. Michael HaggertyNov 27, 2006
  23. Shawn PearceNov 21, 2006
  24. Michael HaggertyNov 27, 2006
  25. Markus SchiltknechtNov 27, 2006
  26. Michael HaggertyNov 27, 2006
  27. Markus SchiltknechtNov 28, 2006
  28. Michael HaggertyNov 30, 2006
  29. Daniel JacobowitzNov 30, 2006
  30. Jon SmirlNov 27, 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.