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

Re: CVS -> SVN -> Git

From
SLScott Lamb <slamb@slamb.org>
Date
Jul 15, 2007, 23:09 UTC
Message-ID
<469AA917.3020401@slamb.org>
In-Reply-To
<4699034A.9090603@alum.mit.edu>
Michael Haggerty wrote:
> One quick-and-dirty idea that I had was to have cvs2svn output
> information compatible with cvsps's output, as I believe that several
> tools rely on cvsps to do the dirty work and so could perhaps be
> persuaded to use cvs2svn out of the box.

I think this would be an excellent approach. The interface between cvs->X (cvsps), Y->git (git-fastimport), and cvs->git glue (git-cvsimport) is a great idea for troubleshooting and for code sharing with other converters. (Shawn O. Pearce's attitude is a great example of this - he can maintain the part he cares about and several converters benefit even though he's never used them.)

However, I was unhappy to see that cvsps doesn't reuse any cvs2svn code or unit tests. I remember seeing a lot of those hairy cases on the Subversion list long ago, so a CVS converter without those tests seems untrustworthy. If I maintained an important CVS repository I wanted to convert to git accurately, I would use cvs2svn.py+git-svnimport over git-cvsimport any day.

They both seem much better than something like Tailor, though. I've discovered several things that made me realize going through working copies is error-prone (as well as slow).

Show 8 quoted lines
>> Does cvs2svn handle incremental imports, remembering any "guesses"
>> taken earlier? Last time I looked at it, it had far better logic than
>> cvsps, but it didn't do incremental imports, and repeated imports done
>> at different times would "guess" different branching points for new
>> branches, so it _really_ didn't support incrementals
> 
> That's correct; cvs2svn does not support incremental conversion at all
> (at least not yet).

That's an important feature for me. I'm using git-cvsimport to track other people's CVS repositories. Initial import is SLOW and resource-intensive on the network, client, and server, so I couldn't switch to anything that didn't support incremental use.

Best regards, Scott

-- 
Scott Lamb <http://www.slamb.org/>
Previous: Markus SchiltknechtNext: Simon 'corecode' Schubert
Message 28 of 31 in “CVS -> SVN -> Git”
  1. Julian PhillipsJul 13, 2007
  2. Michael HaggertyJul 13, 2007
  3. Martin LanghoffJul 14, 2007
  4. Michael HaggertyJul 14, 2007
  5. Chris ShoemakerJul 14, 2007
  6. Michael HaggertyJul 14, 2007
  7. Steffen ProhaskaJul 14, 2007
  8. Shawn O. PearceJul 15, 2007
  9. Eric S. RaymondJul 14, 2007
  10. Junio C HamanoJul 14, 2007
  11. Oswald BuddenhagenJul 14, 2007
  12. Michael HaggertyJul 14, 2007
  13. Karl FogelJul 14, 2007
  14. David FrechJul 14, 2007
  15. Shawn O. PearceJul 15, 2007
  16. Michael HaggertyJul 15, 2007
  17. Martin LanghoffJul 16, 2007
  18. Julian PhillipsJul 16, 2007
  19. Karl FogelJul 16, 2007
  20. Eric S. RaymondJul 15, 2007
  21. Michael HaggertyJul 15, 2007
  22. Eric S. RaymondJul 15, 2007
  23. Martin LanghoffJul 16, 2007
  24. Markus SchiltknechtJul 19, 2007
  25. Karl FogelJul 20, 2007
  26. Simon 'corecode' SchubertJul 19, 2007
  27. Markus SchiltknechtJul 20, 2007
  28. Scott LambJul 15, 2007
  29. Simon 'corecode' SchubertJul 19, 2007
  30. Simon 'corecode' SchubertJul 19, 2007
  31. Julian PhillipsJul 20, 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.