CVSCVT(1) FreeBSD General Commands Manual CVSCVT(1)
cvscvt — CVS/RCS to git and svn converter
cvscvt [−e email−domain] [−f git | svn] [−K] [−k keyword] [−s split−threshold[s|m|h|d]] [−T trunk−name] [−t tags−name] [−v] path ...
cvscvt reads in a set of directory trees containing RCS files (suffix ,v) and converts them to a git fast−import or svn dump. File revisions are grouped to change sets by author and commit log.
Any number of paths may be given, which will be placed at the root of the resulting tree. If a path ends in a slash, its contents will be placed at the root, otherwise this directory will be placed at the root. It is also allowed to specify single ,v files.
Set the email−domain of the authors and committers. This option is only valid for git output. The default is invalid.
−f git | svn
Select the dump output format. The default is git.
Do not unexpand the default RCS keywords Author, Date, Header, Id, Locker, Log, Name, RCSfile, Revision, Source and State.
Unexpand the given keyword. No unexpansion is performed on files with the substition modes b and o.
If a potential change set contains a gap longer than this threshold between two consecutive time stamps, then the change set is split at this point. An optional suffix for seconds, minutes, hours or days may be appended. If no suffix is given, the threshold is interpreted as seconds. The default is 300 seconds.
Set the name for the trunk in the resulting dump. The default is master for git and trunk for svn.
Set the base name for the tags in the resulting dump. This is only valid for svn output. The default is tags.
Show more verbose progress information on stderr.
git init repo.git
cvscvt repo.cvs/ | (cd repo.git && git fast−import)
Import a CVS repository rooted at repo.cvs/ into a new git repository rooted at repo.git. The trailing slash is important, so the files in repo.cvs/ are placed at the root of the resulting repository. Otherwise the resulting repository would have one directory repo.cvs at its root.
cvscvt -f svn repo.cvs/ | svnadmin load repo.svn
This is the same as above except for the target being a svn repository.
cvs(1), git−fast−import(1), rcs(1), svnadmin(1)
cvscvt was written by Christoph Mallon 〈email@example.com〉.
No branches or tags on branches are converted, only trunk and its tags. In particular vendor branches are not merged into trunk. This is work in progress.
January 14, 2012