The detailed description can be found on the Icinga Wiki here.

$ mkdir cvs && cd cvs
$ rsync -av rsync://nagios-snmp.cvs.sourceforge.net/cvsroot/nagios-snmp .
$ svn export --username=guest http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk
$ cp cvs2svn-trunk/cvs2git-example.options cvs2git.options
$ vim cvs2git.options

author_transforms={
    'patrickproy' : ('Patrick Proy', 'patrick@proy.org'),

    # This one will be used for commits for which CVS doesn't record
    # the original author, as explained above.
    'cvs2svn' : 'cvs2svn ',
    }


run_options.set_project(
    # The filesystem path to the part of the CVS repository (*not* a
    # CVS working copy) that should be converted.  This may be a
    # subdirectory (i.e., a module) within a larger CVS repository.
    r'nagios-snmp',


$ cvs2svn-trunk/cvs2git --options=cvs2git.options --fallback-encoding utf-8
$ mkdir manubulon-snmp ; cd manubulon-snmp
$ git init
$ cat ../cvs2svn-tmp/git-{blob,dump}.dat | git fast-import
$ git reset --hard

On github, add a new repository and add that as origin.

$ git remote add origin git@github.com:dnsmichi/manubulon-snmp.git
$ git push -u origin master

Voilà – https://github.com/dnsmichi/manubulon-snmp

%d bloggers like this: