Provided by: cvs2svn_2.5.0-1_all bug


       cvs2bzr - convert a CVS repository into a Bazaar repository


       cvs2bzr [OPTION]... --options=PATH


       Create  a  new  Bazaar repository based on the version history stored in a CVS repository.
       Each CVS commit will be mirrored in the Bazaar repository, including such  information  as
       date of commit and id of the committer.

       The  output of this program is a "fast-import dumpfile", which can be loaded into a Bazaar
       repository using the Bazaar FastImport Plugin, available  from

       CVS-REPOS-PATH  is  the filesystem path of the part of the CVS repository that you want to
       convert.  This path doesn't have to be the top level directory of a CVS repository; it can
       point at a project within a repository, in which case only that project will be converted.
       This path or one of its parent directories has to contain a  subdirectory  called  CVSROOT
       (though  the  CVSROOT directory can be empty). If omitted, the repository path defaults to
       the current directory.

       It is not possible directly to convert a CVS repository to  which  you  only  have  remote
       access,  but  the  FAQ describes tools that may be used to create a local copy of a remote
       CVS repository.



              Read the conversion options from path instead of from the command line. This option
              allows  far more conversion flexibility than can be achieved using the command-line
              alone. See the documentation for more information. Only the following  command-line
              options  are  allowed  in  combination  with  --options:  -h/--help, --help-passes,
              --version,  -v/--verbose,  -q/--quiet,  -p/--pass/--passes,  --dry-run,  --profile,
              --trunk-only,  --encoding,  and  --fallback-encoding.  Options are processed in the
              order specified on the command line.


              Write the blobs and revision data to path.

              Do not create any output; just print what would happen.


              Convert only trunk commits, not tags nor branches.

              Use encoding as the encoding for filenames, log messages, and author names  in  the
              CVS repos. This option may be specified multiple times, in which case the encodings
              are   tried   in    order    until    one    succeeds.    Default:    ascii.    See
      for  a  list  of other standard

              If none of the encodings specified with --encoding succeed in  decoding  an  author
              name  or log message, then fall back to using encoding in lossy 'replace' mode. Use
              of this option may cause information to  be  lost,  but  at  least  it  allows  the
              conversion  to  run  to  completion.  This  option only affects the encoding of log
              messages and author names; there is no fallback encoding for filenames.  (By  using
              an  --options  file,  it is possible to specify a fallback encoding for filenames.)
              Default: disabled.

              If a file appears both inside and outside  of  the  CVS  attic,  retain  the  attic
              version  in a subdirectory called 'Attic'. (Normally this situation is treated as a
              fatal error.)


              Transform RCS/CVS symbol names  before  entering  them  into  the  output  history.
              pattern  is a Python regexp pattern that is matches against the entire symbol name;
              replacement is a replacement  using  Python's  regexp  reference  syntax.  You  may
              specify any number of these options; they will be applied in the order given on the
              command line.

              Read symbol conversion hints from path. The format of  path  is  the  same  as  the
              format  output  by  --write-symbol-info,  namely  a text file with four whitespace-
              separated columns: project-id, symbol, conversion, and parent-lod-name.  project-id
              is  the  numerical  ID of the project to which the symbol belongs, counting from 0.
              project-id can be set to '.' if project-specificity is not needed.  symbol-name  is
              the  name of the symbol being specified. conversion specifies how the symbol should
              be converted, and can be one of  the  values  'branch',  'tag',  or  ´exclude'.  If
              conversion  is  '.',  then  this  rule does not affect how the symbol is converted.
              parent-lod-name is the name of the symbol from which this symbol should sprout,  or
              '.trunk.'  if the symbol should sprout from trunk. If parent-lod-name is omitted or
              '.', then this rule does not affect the preferred parent of this symbol.  The  file
              may  contain  blank  lines  or  comment  lines  (lines  whose  first non-whitespace
              character is '#').

              Specify how to convert ambiguous symbols (those that appear in the CVS  archive  as
              both  branches  and  tags).  opt  must  be  'heuristic'  (decide  how to treat each
              ambiguous symbol based on whether it was used more often as a branch/tag  in  CVS),
              'strict'  (no  default;  every  ambiguous  symbol has to be resolved manually using
              --force-branch, --force-tag, or --exclude), 'branch' (treat every ambiguous  symbol
              as  a  branch), 'tag' (treat every ambiguous symbol as a tag), or 'exclude' (do not
              convert ambiguous symbols). The default is 'heuristic'.

              Force symbols whose names match regexp to be branches.  regexp must match the whole
              symbol name.

              Force  symbols  whose  names  match  regexp to be tags. regexp must match the whole
              symbol name.

              Exclude branches and tags whose names match regexp from the conversion. regexp must
              match the whole symbol name.

              Do  not  exclude branches that were only used for a single import. (By default such
              branches are excluded because they are usually created by the inappropriate use  of
              cvs import.)


              Set  the  default username to name when this program needs to generate a commit for
              which CVS does not record the original username.  This happens when a branch or tag
              is created. Default: "cvs2bzr".

              Specify  a  file  in  the  format  of  Subversion's config file, whose [auto-props]
              section can be used  to  set  arbitrary  properties  on  files  in  the  Subversion
              repository  based  on  their  filenames.  (The  [auto-props] section header must be
              present; other  sections  of  the  config  file,  including  the  enable-auto-props
              setting,  are  ignored.)   Filenames  are  matched  to  the filename patterns case-

              Specify an apache-style mime.types file for setting svn:mime-type.

              For files that don't have the kb expansion mode but have a known mime type, set the
              eol-style  based on the mime type. For such files, set svn:eol-style to "native" if
              the mime type begins with "text/", and leave it unset (i.e.,  no  EOL  translation)
              otherwise.  Files  with  unknown  mime  types are not affected by this option. This
              option has no effect unless the --mime-types option is also specified.

              Set svn:eol-style to style for files that don't have the CVS  ´kb'  expansion  mode
              and  whose  end-of-line translation mode hasn't been determined by one of the other
              options. style must be 'binary' (default), 'native', 'CRLF', 'LF', or 'CR'.

              By default, cvs2svn sets svn:keywords on CVS files to "author id date" if the  mode
              of  the RCS file in question is either kv, kvl or unset. If you use the --keywords-
              off switch, cvs2svn will not set svn:keywords for any file.  While  this  will  not
              touch the keywords in the contents of your files, Subversion will not expand them.

              Include .cvsignore files in the output. (Normally they are unneeded because cvs2svn
              sets the corresponding svn:ignore properties.)

              Record CVS revision numbers as file properties in the Subversion repository.  (Note
              that  unless  it  is  removed  explicitly, the last CVS revision number will remain
              associated with the file even after the file is changed within Subversion.)


              Keyword mode to force, or no to use the  default.  opt  can  be  'untouched'  (keep
              literally  as  they  are recorded in the RCS file), ´collapsed' (retain the key but
              not the value), 'expanded' (fake the way CVS  expands  them,  even  for  binaries),
              'kept' (just let CVS deal with keywords).

              Use  CVS to extract revision contents. This option is slower than --use-internal-co
              or --use-rcs.

              Use RCS 'co' to extract revision contents. This option is faster than --use-cvs but
              fails in some cases.


              Set  the  path  to  use  for  temporary  data. The default is to create a temporary
              subdirectory under /tmp.

              Path to the co program. (co is needed if the --use-rcs option is used.)

              Path to the cvs program. (cvs is needed if the --use-cvs option is used.)


              Execute only pass pass of the conversion. pass can  be  specified  by  name  or  by
              number (see --help-passes).

       -p [start]:[end], --passes=[start]:[end]
              Execute  passes  start through end of the conversion (inclusive). start and end can
              be specified by name or by number (see --help-passes). If start or end is  missing,
              it  defaults  to the first or last pass, respectively. 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 temporary directory (see --tmpdir).


              Print the version number.

       -h, --help
              Print the usage message and exit with success.

              Print the numbers and names of the conversion passes and exit with success.

       --man  Output the unix-style manpage for this program to standard output.

       -v, --verbose
              Print  more information while running. This option may be specified twice to output
              voluminous debugging information.

       -q, --quiet
              Print less information while  running.  This  option  may  be  specified  twice  to
              suppress all non-error output.

              Write  to  path  symbol statistics and information about how symbols were converted
              during CollateSymbolsPass.

              Prevent the deletion of temporary files.

              Profile with 'cProfile' (into file cvs2svn.cProfile).


       A directory under /tmp (or the directory specified by --tmpdir) is used as  scratch  space
       for temporary data files.


       Main authors are:
       C. Michael Pilato <>
       Greg Stein <>
       Branko Čibej <>
       Blair Zajac <>
       Max Bowsher <>
       Brian Fitzpatrick <>
       Tobias Ringström <>
       Karl Fogel <>
       Erik Hülsmann <>
       David Summers <>
       Michael Haggerty <>

       Manpage  was  written  for  the  Debian  GNU/Linux  system  by  Laszlo  'GCS'  Boszormenyi
       <> (but may be used by others).


       cvs(1), bzr(1)