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

Direct CVS import tool

From
Keith Packard <keithp@keithp.com>
Date
Mar 13, 2006, 08:25 UTC
Message-ID
<1142238342.24217.63.camel@neko.keithp.com>

I've got some rather large, broken, CVS trees that I'm trying to migrate to git (X.org).

Attempts to do this with the existing cvsps-based git-cvsimport have proved rather disasterous; missing files, incorrect log messages and incorrect revisions are spread throughout the tree, including on the tip of each branch.

I'm reasonably sure the problems are caused by cvsps, and while I've hacked at that quite a bit, it seems like it's so focused on analysing the tree for putative software engineering reesarch that it cannot be made to accurately reproduce the tree via changeset analysis.

So, I've given up hacking cvsps and wrote a simple RCS file parser that directly reads ,v files into a git-like revlist structure, and then merges those together into a final tree. At this point, it's generating the right head information for every named branch, but it's still not successfully connecting all of the branches back together at suitable points.

It's also not yet generating actual git trees; instead it dumps the generated revision tree structure to a graphviz file for visual inspection of the results.

But, I figured instead of doing this work in secret, I'd let people know what I'm up to in case others want to play along.

git://git.freedesktop.org/~keithp/parsecvs
And, of course ideas for a suitable name would be welcome.
-- 
keith.packard@intel.com
Message 1 of 1 in “Direct CVS import tool”
  1. Keith PackardMar 13, 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.