1CVS2SVN(1)                       User Commands                      CVS2SVN(1)
2
3
4

NAME

6       cvs2svn - convert a cvs repository into a subversion repository
7

SYNOPSIS

9       cvs2svn [OPTION]... -s svn-repos-path cvs-repos-path
10       cvs2svn [OPTION]... --dumpfile=path cvs-repos-path
11

DESCRIPTION

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

FILES

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

AUTHORS

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

SEE ALSO

248       cvs(1), svn(1), svnadmin(1)
249
250
251
252Subversion                       Oct 24, 2004                       CVS2SVN(1)
Impressum