Migrate project from RCS to git? Migrate project from RCS to git? git git

Migrate project from RCS to git?


See InterfacesFrontendsAndTools page on Git Wiki, in "Tools", "Interaction with other Revision Control Systems", "Other". There you would find a description and a link to rcs-fast-export (gitweb) Ruby script by Giuseppe "Oblomov" Bilotta.

(Web search would find also Ohloh page and announcement for mentioned project).


OK, after a little tinkering, I found it was trivial to convert RCS to CVS. The files are in the same format, so it's simply a matter of moving the files into an existing CVS root. This assumes you have access to the RCS files.

# Create CVS root dir. You only need to do this once.mkdir $HOME/cvs/cd $HOME/cvs/cvs init# Import a repository from RCS to CVScp -a _projectname_/RCS $HOME/cvs/_projectname_


As a general rule you should be careful as to what scripts you run. For RCS -> GIT it may be in your best interest to follow the RCS->CVS->GIT methodology.

Took a quick look at rcs-fast-export.rb as of 2011-01-12 and ran across this portion of the code. This is scary at best.

# steal username/email data from other init files that may contain the# informationdef steal_username    [            # the user's .hgrc file for a username field            ['~/.hgrc',   /^\s*username\s*=\s*(["'])?(.*)\1$/,       2],            # the user's .(g)vimrc for a changelog_username setting            ['~/.vimrc',  /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],            ['~/.gvimrc', /changelog_username\s*=\s*(["'])?(.*)\1$/, 2],            []    ].each do |fn, rx, idx|...