cvs2svn is a tool for migrating a CVS repository to Subversion,
git, or Bazaar. The main design goals are robustness and 100% data
preservation. cvs2svn can convert just about any CVS repository we've
ever seen. For example, it has been used to convert gcc, FreeBSD,
KDE, GNOME, PostgreSQL...
cvs2svn infers what happened in the history of your CVS repository
and replicates that history as accurately as possible in the target
SCM. All revisions, branches, tags, log messages, author names, and
commit dates are converted. cvs2svn deduces what CVS modifications
were made at the same time, and outputs these modifications grouped
together as changesets in the target SCM. cvs2svn also deals with
many CVS quirks and is highly configurable. See the comprehensive feature list.
You can get the latest release from the Downloads Area. Please read the
documentation carefully before using cvs2svn.
For general use, the most recent released version of cvs2svn is
usually the best choice. However, if you want to use the newest
cvs2svn features or if you're debugging or patching cvs2svn, you might
want to use the trunk version (which is usually quite stable). To do
so, use Subversion to check out a working copy from http://cvs2svn.tigris.org/svn/cvs2svn/trunk/ using a command like
svn co --username=guest --password="" http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk