Add CHANGES file, pre-written for the 1.1.0 release.
[cvs2svn.git] / cvs2svn.1
blob24fcebf86cfae639ccb7f294aceffad3c40dd4fc
1 .TH CVS2SVN "1" "Sep 13, 2004" "Subversion" "User Commands"
2 .SH NAME
3 cvs2svn \- convert a cvs repository into a subversion repository
4 .SH SYNOPSIS
5 .B cvs2svn
6 [\fIOPTION\fR]... \fI-s svn-repos-path cvs-repos-path\fR
7 .br
8 .B cvs2svn
9 [\fIOPTION\fR]... \fI--dump-only cvs-repos-path\fR
10 .SH DESCRIPTION
11 Create a new Subversion repository based on the version history stored in a
12 CVS repository. Each CVS commit will be mirrored in the Subversion
13 repository, including such information as date of commit and id of the
14 committer.
15 .TP
16 \fB--help\fR, \fB-h\fR
17 Print out usage message and exit with success.
18 .TP
19 \fB--version\fR
20 Print the version number.
21 .TP
22 \fB-q\fR
23 Quiet, print less information while running.
24 .TP
25 \fB-v\fR
26 Verbose, print more information while running.
27 .TP
28 \fB-s\fR=\fIpath\fR
29 Load CVS repository into the Subversion repository located at PATH. If there
30 is no Subversion repository at \fIpath\fR, create a new one.
31 .TP
32 \fB-p\fR \fIstart\fR[:\fIend\fR]
33 Start the program at pass \fIstart\fR and stop it at pass \fIstop\fR, both
34 may range from 1 (the default) to 8. For this to work the earlier passes
35 must have been completed before on the same CVS repository, and the
36 generated data files must be in the current directory. Also, \fIstop\fR can
37 be omitted, in this case only the pass specified in \fIstart\fR will be
38 executed.
39 .TP
40 \fB--existing-svnrepos\fR
41 Load into existing SVN repository, instead of creating one. Please note that
42 you must own the repository, or at least be in the group which owns it, and
43 have group writeable files/directories.
44 .TP
45 \fB--dump-only\fR
46 Just produce a dumpfile, don't commit to a repos.
47 .TP
48 \fB--dumpfile\fR=\fIpath\fR
49 Set the \fIpath\fR and optionaly name of the dumpfile. The default is
50 \fIcvs2svn-dump\fR in the current directory.
51 .TP
52 \fB--tmpdir\fR=\fIpath\fR
53 Set the \fIpath\fR to use for temporary data. Default is the current directory.
54 .TP
55 \fB--profile\fR
56 Profile with 'hotshot' (into file \fIcvs2svn.hotshot\fR).
57 .TP
58 \fB--dry-run\fR
59 Do not create a repository or a dumpfile; just print the details of what
60 cvs2svn would do if it were really converting your repository.
61 .TP
62 \fB--use-cvs\fR
63 Use CVS instead of RCS 'co' to extract data (only use this if having
64 problems with RCS, as CVS is much slower).
65 .TP
66 \fB--svnadmin\fR=\fIpath\fR
67 Path to the the \fIsvnadmin\fR program.
68 .TP
69 \fB--trunk-only\fR
70 Convert only trunk commits, not tags nor branches.
71 .TP
72 \fB--trunk\fR=\fIpath\fR
73 Put the trunk (main branch) into the subdirectory \fIpath\fR of the
74 Subversion repository (default is \fItrunk\fR).
75 .TP
76 \fB--branches\fR=\fIpath\fR
77 Put branch copies under the subdirectory \fIpath\fR of the Subversion
78 repository (default is \fIbranches\fR).
79 .TP
80 \fB--tags\fR=\fIpath\fR
81 Put tag copies under the subdirectory \fIpath\fR of the Subversion
82 repository (default is \fItags\fR).
83 .TP
84 \fB--no-prune\fR
85 When all files are deleted from a directory in the Subversion repository,
86 don't delete the empty directory (the default is to delete any empty
87 directories.
88 .TP
89 \fB--encoding\fR=\fIencoding\fR
90 Set \fIencoding\fR of log messages in CVS repos (default is ascii).
91 .TP
92 \fB--force-branch\fR=\fIname\fR
93 Force \fIname\fR to be a branch.
94 .TP
95 \fB--force-tag\fR=\fIname\fR
96 Force \fIname\fR to be a tag.
97 .TP
98 \fB--exclude\fR=\fIregexp\fR
99 Exclude branches and tags matching \fIregexp\fR.
101 \fB--symbol-transform\fR=\fIP\fR:\fIS\fR
102 Transform symbol names from \fIP\fR to \fIS\fR where \fIP\fR and \fIS\fR
103 use Python regexp and reference syntax respectively. You may specify any
104 number of these options; they will be applied left to right in the order
105 given on the command line.
107 This option can be useful if you're converting a repository in which the
108 developer used directory-wide symbol names like 1_0, 1_1 and 2_1 as a
109 kludgy form of release tagging (the C-x v s command in Emacs VC mode
110 encourages this practice).
112 \fB--username\fR=\fIname\fR
113 Set the default username to \fIname\fR when cvs2svn doesn't have a username
114 from the CVS repository to work with.  This happens when a branch or tag is
115 created. The default name is "\fIunknown\fR".
117 \fB--skip-cleanup\fR
118 Prevent the deletion of intermediate files.
120 \fB--bdb-txn-nosync\fR
121 Pass \fI--bdb-txn-nosync\fR to "svnadmin create".
123 \fB--cvs-revnums\fR
124 Record CVS revision numbers as file properties.
126 \fB--mime-types\fR=\fIfile\fR
127 Specify an apache-style mime.types \fIfile\fR for setting svn:mime-type .
128 On \fIDebian GNU/Linux\fR systems, you can have one at \fI/etc/mime.types\fR
129 by installing the \fImime-support\fR package.
131 \fB--eol-from-mime-type\fR
132 Set svn:eol-style by mime type (only with \fI--mime-types\fR).
134 \fB--no-default-eol\fR
135 Don't set svn:eol-style by CVS defaults.
137 \fB--keywords-off\fR
138 Don't set svn:keywords on any files (cvs2svn sets svn:keywords to
139 "author date id" on non-binary files by default).
140 .SH FILES
141 The current directory is used as scratch space for data files of the form
142 \fIcvs2svn-data.*\fR and a dumpfile named \fIcvs2svn-dump\fR.
143 .SH AUTHORS
144 Main authors are:
146 C. Michael Pilato <cmpilato@collab.net>
148 Greg Stein <gstein@lyra.org>
150 Branko Čibej <brane@xbc.nu>
152 Blair Zajac <blair@orcaware.com>
154 Max Bowsher <maxb@ukf.net>
156 Brian Fitzpatrick <fitz@red-bean.com>
158 Tobias Ringström <tobias@ringstrom.mine.nu>
160 Karl Fogel <kfogel@collab.net>
162 Erik Hülsmann <e.huelsmann@gmx.net>
164 David Summers <david@summersoft.fay.ar.us>
166 Manpage was written for the Debian GNU/Linux system by
167 Laszlo 'GCS' Boszormenyi <gcs@lsc.hu> (but may be used by others).
168 .SH SEE ALSO
169 cvs(1), svn(1), svnadmin(1)