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

What is the best way to convert a multi module CVS repository to git?

From
Wwolfgang.liebich@siemens-enterprise.com <wolfgang.liebich@siemens-enterprise.com>
Date
Jan 4, 2010, 15:53 UTC
Message-ID
<20100104155322.GC12195@atpcttvc.global-intra.net>

Hi, I have inherited a rather big, old, multi-module CVS repository which I want to convert to GIT. Most of the CVS modules do belong to one project now, i.e. the separation into multiple modules is something of a historical accident now. This means it does not make sense to put each CVS module into an own GIT project and use submodules. Furthermore the conversion will be one-way, i.e. afterwards the CVS repo will be shutdown forever and moved to offline storage. Incremental conversion is therefore not an issue. If I need one day to convert everything (the repo is about 3GB), so be it - the most important feature to me is correctness (I do NOT want to have to run manual verifications for N days/weeks/months, just to verify that everything was converted), and ideally even the possibility of re-creating the history of files which were moved across directories (this HAS happened sometimes - I did not fiddle around with the RCS files, but used straight rm+add, and accepted the loss of history forced on me by CVS).

What is the best (i.e. most trustworthy) method of conversion? For now
it seems to me that cvs2git (the ...2git companion to cvs2svn) is the
best choice (because it can handle multi-module projects in a sane way)
- but I'm open to suggestions!

Ciao, Wolfgang Liebich

Next: Heiko Voigt
Message 1 of 2 in “What is the best way to convert a multi module CVS repository to git?”
  1. wolfgang.liebich@siemens-enterprise.comJan 4, 2010
  2. Heiko VoigtJan 14, 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.