CVS2GIT(1)

NAME
cvs2git - convert CVS repository to git

SYNOPSIS
cvs2git [-f fixup-sql-script] [-m mailmap] [-s merge-limit-seconds] source destination

DESCRIPTION
cvs2git is a script to convert a cvs(1) repository to git(1) using cvs2fossil(1) and git(1).

source must be a CVS repository (the server side, i.e. the RCS files, not a checkout). cvs2git will create destination.fossil (the fossil conversion created by cvs2fossil(1)). fossil(1) will create a git(1) fast-import file destination.fossil.export which will be converted into the git repository destination.git by git(1.) git(1) will also be used to update the author information using a mailmap file, if provided.

cvs2git supports the following flags:

-m mailmap
    Pass a git(1) mailmap file for creating proper author information using git-filter-repo(1). The mailmap format is described in gitmailmap(5).

-f fixup-sql-script
    Pass an SQL fixup script for cvs2fossil(1) for its -f flag.

-s merge-limit-seconds
    Pass a merge time limit in seconds to cvs2fossil(1).

EXAMPLES
To convert the NetBSD src repository, if you have developer access, do:

    export REPO=src
    export LOGIN=username
    rsync -aS --delete -e ssh "$LOGIN"@cvs.NetBSD.org::cvsroot/"$REPO" "$REPO"-rsync
    cvs2git -m mailmap -s 300 "$REPO"-rsync/"$REPO" "$REPO"

The conversion output is in src.git. The intermediate fossil directory is src.fossil and the corresponsing fast-import file src.fossil.export. If you use -a there will be another src.git.old directory, respectively. You can delete them after the conversion.