cvs2darcs is a program to import a CVS module/project into a Darcs repository, preserving all (or as much as possible) of the revision history, including support for importing branches.
Darcs is a free advanced revision-control program, available from www.darcs.net, that has many features lacking in CVS (such as the ability to have independent branch repositories, arbitrary merging of repositories, etc.).
cvs2darcs checks out MODULE from the CVS repository into a new directory (by default, into the directory MODULE) and converts this directory into a Darcs repository. (This will take some time for large repositories. You may want to copy your CVS repository to a local disk to speed things up.)
Instead of MODULE, you can also specify an existing CVS project directory. This will import the directory into a Darcs repository (preserving the CVS information as with -p below). If the directory was already imported into Darcs, then cvs2darcs will import any new CVS patches into Darcs (but not vice-versa).
The most important option flags are -d CVSROOT, which specifies the location of the CVS repository root (exactly as the cvs -d flag); -o DIR, which specifies an alternate output directory name; and -b BRANCH, which specifies a CVS branch to import (default is HEAD). Other options are described below.
The CVS repository is not modified. However, the output directory created by cvs2darcs is not linked to the CVS repository (technically, it has no CVS/ directories). If you want to preserve the CVS information in the output directory, you can pass the -p flag; this is the default if the output directory already exists as a CVS-controlled directory.
Copyright (c) 2004 David Roundy
Copyright (c) 2004 Ganesh Sittampalam
Copyright (c) 2004 Steven G. Johnson