blob: ffada0f4886c6f6493e56ea08c29242bc13933ff [file] [log] [blame]
.Dd January 12, 2003
.Os Subversion
.Dt CVS2SVN 1 "User Commands"
.Sh NAME
.Nm cvs2svn
.Nd convert a cvs repository into a subversion repository
.Sh SYNOPSIS
.Nm
.Op Fl nv
.Op Fl s Ar svn-repos-path
.Op Fl p Ar pass
.Op Fl -create
.Op Fl -trunk Ns = Ns Ar path
.Op Fl -branches Ns = Ns Ar path
.Op Fl -tags Ns = Ns Ar path
.Op Fl -dumpfile Ar name
.Op Fl -encoding Ar encoding
.Op Fl -svnadmin Ar path
.Op Fl -username Ar name
.Ar cvs-repos-path
.Sh DESCRIPTION
.Nm
can be used to create a new Subversion repository based on the version
history stored in a CVS repository.
Each CVS commit will be mirrored in the subversion repository,
including such information as date of commit and id of the committer.
.Pp
.Ar cvs-repos-path
is a project's toplevel directory inside your CVS repository,
everything below it will be mirrored.
You can give a CVS repository's root path, then all contained projects
as well as the administrative directory
.Pa CVSROOT
will be converted over, which may not be what you want.
.Bl -tag
.It Fl n
Dry run do not actually commit anything.
.It Fl v
Verbose, print more information while running.
.It Fl s Ar svn-repos-path
Use/create the Subversion repository at
.Pa svn-repos-path
instead of
.Pa svnroot .
.It Fl -create
Create a new repository.
.It Fl -trunk Ns = Ns Ar path
Put the trunk (main branch) into the subdirectory
.Pa path
of the Subversion repository.
.It Fl -branches Ns = Ns Ar path
Put branch copies under the subdirectory
.Ar path
of the Subversion
repository. (But see
.Sx LIMITATIONS . )
.It Fl -tags Ns = Ns Ar path
Put tag copies under the subdirectory
.Ar path
of the Subversion
repository. (But see
.Sx LIMITATIONS . )
.It Fl -dumpfile Ar name
Set the
.Ar name
of the dumpfile. The default is
.Pa cvs2svn-dump
in the current directory.
.It Fl -encoding Ar encoding
Set the
.Ar encoding
of the CVS archive.
.It Fl -svnadmin Ar path
Path to the the
.Ar svnadmin
program.
.It Fl -username Ar name
Set the default username to
.Ar name
when cvs2svn.py doesn't have a username from the CVS repository to
work with. This happens when a branch or tag is created. The default
name is "unknown".
.It Fl p Ar n
Start the program at pass
.Ar n ,
which may range from 1 (the default) to 5.
For this to work the earlier passes must have been completed before on
the same CVS repository, and the generated data files must be in the
current directory.
.El
.Sh FILES
The current directory is used as scratch space for data files of the form
.Pa cvs2svn-data.*
and a dumpfile named
.Pa cvs2svn-dump
.Sh LIMITATIONS
.Nm
currently does not handle tags or branches.
.Sh SEE ALSO
.Xr cvs 1 ,
.Xr svn 1 ,
.Xr svnadmin 1