Basics

Convert-repo is a generic repository conversion framework. It can be found in contrib/convert-repo in the Mercurial distribution. The development version currently supports importing from Git and CVS and exporting to Mercurial. Run it as follows:

$ convert-repo [-q] [--datesort] <src> [dst [mapfile]]

Repository types of src and dst are automatically detected. If dst doesn't exist, it is automatically created as a Mercurial repository. If dst isn't specified, it defaults to src-hg. If mapfile isn't specified, it's automatically created (in dst/.hg/shamap for Mercurial).

CVS support

CVS support is currently only available in the development version. It uses [http://www.cobite.com/cvsps/ cvsps] to determine changesets and communicates directly with cvs server to extract file revisions. CVS branches are translated to Mercurial named branches. If you'd like to use the preferred repository-per-branch model, these branches can be separated out into their own repositories with hg clone -r <branch> project-hg project-<branch>.

This support is still experimental and the following features are still missing: