cvs2bzr(1)


NAME

   cvs2bzr - convert a cvs repository into a Bazaar repository

SYNOPSIS

   cvs2bzr [OPTION]... OUTPUT-OPTIONS CVS-REPOS-PATH
   cvs2bzr [OPTION]... --options=PATH

DESCRIPTION

   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 https://launchpad.net/bzr-fastimport.

   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).

   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.

OPTIONS

CONFIGURATION VIA OPTIONS FILE

   --options=path
          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.

OUTPUT OPTIONS

   --dumpfile=path
          Write the blobs and revision data to path.

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

CONVERSION OPTIONS

   --trunk-only
          Convert only trunk commits, not tags nor branches.

   --encoding=enc
          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
          http://docs.python.org/lib/standard-encodings.html for a list of
          other standard encodings.

   --fallback-encoding=enc
          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.

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

SYMBOL HANDLING

   --symbol-transform=p:s
          Transform   RCS/CVS  symbol  names  before  entering  them  into
          Subversion.  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.

   --symbol-hints=path
          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 '#').

   --symbol-default=opt
          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-branch=regexp
          Force  symbols  whose names match regexp to be branches.  regexp
          must match the whole symbol name.

   --force-tag=regexp
          Force symbols whose names match regexp to be tags.  regexp  must
          match the whole symbol name.

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

   --keep-trivial-imports
          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.)

SUBVERSION PROPERTIES

   --username=name
          Set the default username to name when cvs2svn needs to  generate
          a  commit  for  which CVS does not record the original username.
          This happens when a branch or tag is created. The default is  to
          use no author at all for such commits.

   --auto-props=file
          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-
          insensitively.

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

   --eol-from-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.

   --default-eol=style
          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'.

   --keywords-off
          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.

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

   --cvs-revnums
          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.)

EXTRACTION OPTIONS

   --force-keyword-mode=opt
          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
          Use CVS to extract revision contents. This option is slower than
          --use-internal-co or --use-rcs.

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

ENVIRONMENT OPTIONS

   --tmpdir=path
          Set  the  path to use for temporary data. Default is a directory
          called cvs2svn-tmp under the current directory.

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

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

PARTIAL CONVERSIONS

   --pass=pass
          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).

INFORMATION OPTIONS

   --version
          Print the version number.

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

   --help-passes
          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-symbol-info=path
          Write  to  path  symbol  statistics  and  information  about how
          symbols were converted during CollateSymbolsPass.

   --skip-cleanup
          Prevent the deletion of temporary files.

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

FILES

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

AUTHORS

   Main authors are:
   C. Michael Pilato <cmpilato@collab.net>
   Greg Stein <gstein@lyra.org>
   Branko ibej <brane@xbc.nu>
   Blair Zajac <blair@orcaware.com>
   Max Bowsher <maxb@ukf.net>
   Brian Fitzpatrick <fitz@red-bean.com>
   Tobias Ringstrm <tobias@ringstrom.mine.nu>
   Karl Fogel <kfogel@collab.net>
   Erik Hlsmann <e.huelsmann@gmx.net>
   David Summers <david@summersoft.fay.ar.us>
   Michael Haggerty <mhagger@alum.mit.edu>

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

SEE ALSO

   cvs(1), bzr(1)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.