1CVS2SVN(1) User Commands CVS2SVN(1)
2
3
4
6 cvs2svn - convert a cvs repository into a subversion repository
7
9 cvs2svn [OPTION]... -s svn-repos-path cvs-repos-path
10 cvs2svn [OPTION]... --dumpfile=path cvs-repos-path
11
13 Create a new Subversion repository based on the version history stored
14 in a CVS repository. Each CVS commit will be mirrored in the Subversion
15 repository, including such information as date of commit and id of the
16 committer.
17
18 --help, -h
19 Print the usage message and exit with success.
20
21 --help-passes
22 Print the numbers and names of the conversion passes and exit
23 with success.
24
25 --version
26 Print the version number.
27
28 --verbose, -v
29 Print more information while running.
30
31 --quiet, -q
32 Print less information while running. This option may be speci‐
33 fied twice to suppress all non-error output.
34
35 --options=path
36 Read the conversion options from path instead of from the com‐
37 mand line. See the documentation for more information. Only
38 the following options are allowed in combination with --options:
39 -h/--help, --help-passes, --version, -v/--verbose, -q/--quiet,
40 -p, --dry-run, and --profile.
41
42 -s path
43 Load CVS repository into the Subversion repository located at
44 PATH. If there is no Subversion repository at path, create a new
45 one.
46
47 -p pass
48 Execute only pass pass of the conversion. pass can be specified
49 by name or by number (see --help-passes).
50
51 -p [start]:[end]
52 Execute passes start through end of the conversion (inclusive).
53 start and end can be specified by name or by number (see --help-
54 passes). If start or end is missing, it defaults to the first
55 or last pass, respectively. For this to work the earlier passes
56 must have been completed before on the same CVS repository, and
57 the generated data files must be in the temporary directory (see
58 --tmpdir).
59
60 --existing-svnrepos
61 Load into existing SVN repository, instead of creating a new
62 repository. Please note that you need write permission for the
63 repository files.
64
65 --dumpfile=path
66 Just produce a dumpfile; don't commit to an SVN repository. Use
67 path as the name of the dumpfile.
68
69 --dry-run
70 Do not create a repository or a dumpfile; just print the details
71 of what cvs2svn would do if it were really converting your
72 repository.
73
74 --use-cvs
75 Use CVS instead of RCS 'co' to extract data (only use this if
76 having problems with RCS, as CVS is much slower).
77
78 --trunk-only
79 Convert only trunk commits, not tags nor branches.
80
81 --trunk=path
82 Set the top-level path to use for trunk in the Subversion repos‐
83 itory. The default is trunk.
84
85 --branches=path
86 Set the top-level path to use for branches in the Subversion
87 repository. The default is branches.
88
89 --tags=path
90 Set the top-level path to use for tags in the Subversion reposi‐
91 tory. The default is tags.
92
93 --no-prune
94 When all files are deleted from a directory in the Subversion
95 repository, don't delete the empty directory (the default is to
96 delete any empty directories.
97
98 --encoding=encoding
99 Use encoding as the encoding for filenames, log messages, and
100 author names in the CVS repos. This option may be specified
101 multiple times, in which case the encodings are tried in order
102 until one succeeds. Default: ascii.
103
104 --fallback-encoding=encoding
105 If all of the encodings specified with --encoding fail, then
106 fall back to using encoding in lossy 'replace' mode. Use of
107 this option may cause information to be lost, but at least it
108 allows the conversion to run to completion. Default: disabled.
109
110 --force-branch=regexp
111 Force symbols whose names match regexp to be branches.
112
113 --force-tag=regexp
114 Force symbols whose names match regexp to be tags.
115
116 --exclude=regexp
117 Exclude branches and tags whose names match regexp from the con‐
118 version.
119
120 --symbol-default=opt
121 Specify how to convert ambiguous symbols (those that appear in
122 the CVS archive as both branches and tags). opt must be
123 `branch' (treat every ambiguous symbol as a branch), `tag'
124 (treat every ambiguous symbol as a tag), `heuristic' (decide how
125 to treat each ambiguous symbol based on whether it was used more
126 often as a branch/tag in CVS), or `strict' (no default; every
127 ambiguous symbol has to be resolved manually using --force-
128 branch, --force-tag, or --exclude).
129
130 --symbol-transform=pattern:replacement
131 Transform RCS/CVS symbol names before entering them into Subver‐
132 sion. pattern is a Python regexp pattern and replacement is a
133 replacement using Python's regexp reference syntax. You may
134 specify any number of these options; they will be applied in the
135 order given on the command line.
136 This option can be useful if you're converting a repository in
137 which the developer used directory-wide symbol names like 1_0,
138 1_1 and 2_1 as a kludgy form of release tagging (the C-x v s
139 command in Emacs VC mode encourages this practice).
140
141 --username=name
142 Set the default username to name when cvs2svn doesn't have a
143 username from the CVS repository to work with. This happens
144 when a branch or tag is created. The default is to use no
145 author at all for such commits.
146
147 --fs-type
148 Pass --fs-type=type to "svnadmin create" when creating a new
149 repository.
150
151 --bdb-txn-nosync
152 Pass --bdb-txn-nosync to "svnadmin create" when creating a new
153 repository.
154
155 --cvs-revnums
156 Record CVS revision numbers as file properties in the Subversion
157 repository. (Note that unless it is removed explicitly, the
158 last CVS revision number will remain associated with the file
159 even after the file is changed within Subversion.)
160
161 --mime-types=file
162 Specify an apache-style mime.types file for setting svn:mime-
163 type.
164
165 --auto-props=file
166 Specify a file in the format of Subversion's config file, whose
167 [auto-props] section can be used to set arbitrary properties on
168 files in the Subversion repository based on their filenames.
169 (The [auto-props] section header must be present; other sections
170 of the config file, including the enable-auto-props setting, are
171 ignored.) Filenames are matched to the filename patterns case-
172 sensitively unless the --auto-props-ignore-case option is speci‐
173 fied.
174
175 --auto-props-ignore-case
176 Ignore case when pattern-matching auto-props patterns.
177
178 --eol-from-mime-type
179 For files that don't have the kb expansion mode but have a known
180 mime type, set the eol-style based on the mime type. For such
181 files, set svn:eol-style to "native" if the mime type begins
182 with "text/", and leave it unset (i.e., no EOL translation) oth‐
183 erwise. Files with unknown mime types are not affected by this
184 option. This option has no effect unless the --mime-types
185 option is also specified.
186
187 --no-default-eol
188 Files that don't have the kb expansion mode and (if --eol-from-
189 mime-type is set) unknown mime type usually have their svn:eol-
190 style property to "native". If this option is specified, such
191 files are left with no eol-style (i.e., no EOL translation).
192
193 --keywords-off
194 By default, cvs2svn sets svn:keywords on CVS files to "author id
195 date" if the mode of the RCS file in question is either kv, kvl
196 or not kb. If you use the --keywords-off switch, cvs2svn will
197 not set svn:keywords for any file. While this will not touch
198 the keywords in the contents of your files, Subversion will not
199 expand them.
200
201 --tmpdir=path
202 Set the path to use for temporary data. Default is the current
203 directory.
204
205 --skip-cleanup
206 Prevent the deletion of temporary files.
207
208 --profile
209 Profile with 'hotshot' (into file cvs2svn.hotshot).
210
211 --svnadmin=path
212 Path to the svnadmin program.
213
214 --co=path
215 Path to the co program. (co is needed if --use-cvs is not spec‐
216 ified.)
217
218 --cvs=path
219 Path to the cvs program. (cvs is needed if --use-cvs is speci‐
220 fied.)
221
222 --sort=path
223 Path to the GNU sort program. (cvs2svn requires GNU sort.)
224
226 The current directory (or the directory specified by --tmpdir) is used
227 as scratch space for data files of the form cvs2svn-data.* and a dump‐
228 file named cvs2svn-dump.
229
231 Main authors are:
232 C. Michael Pilato <cmpilato@collab.net>
233 Greg Stein <gstein@lyra.org>
234 Branko Čibej <brane@xbc.nu>
235 Blair Zajac <blair@orcaware.com>
236 Max Bowsher <maxb@ukf.net>
237 Brian Fitzpatrick <fitz@red-bean.com>
238 Tobias Ringström <tobias@ringstrom.mine.nu>
239 Karl Fogel <kfogel@collab.net>
240 Erik Hülsmann <e.huelsmann@gmx.net>
241 David Summers <david@summersoft.fay.ar.us>
242 Michael Haggerty <mhagger@alum.mit.edu>
243
244 Manpage was written for the Debian GNU/Linux system by Laszlo 'GCS'
245 Boszormenyi <gcs@lsc.hu> (but may be used by others).
246
248 cvs(1), svn(1), svnadmin(1)
249
250
251
252Subversion Oct 24, 2004 CVS2SVN(1)