git-cvsimport man page on OpenBSD

Man page or keyword search:  
man Server   11362 pages
apropos Keyword Search (all sections)
Output format
OpenBSD logo
[printable version]



GIT-CVSIMPORT(1)				 GIT-CVSIMPORT(1)

NAME
       git-cvsimport  -	 Salvage  your	data out of another SCM people love to
       hate

SYNOPSIS
       git cvsimport [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>]
		     [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>]
		     [-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>]
		     [-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>]
		     [-r <remote>] [-R] [<CVS_module>]

DESCRIPTION
       Imports a CVS repository into git. It will either create a new  reposi-
       tory, or incrementally import into an existing one.

       Splitting  the  CVS log into patch sets is done by cvsps. At least ver-
       sion 2.1 is required.

       WARNING: for certain situations the import leads to incorrect  results.
       Please see the section ISSUES for further reference.

       You  should never do any work of your own on the branches that are cre-
       ated by git cvsimport. By default initial import will create and	 popu-
       late  a	"master"  branch  from	the CVS repository’s main branch
       which you’re free to work with; after that, you need to git merge
       incremental  imports, or any CVS branches, yourself. It is advisable to
       specify a named remote via -r to	 separate  and	protect	 the  incoming
       branches.

       If  you intend to set up a shared public repository that all developers
       can read/write, or if you want to use git-cvsserver(1), then you proba-
       bly  want  to make a bare clone of the imported repository, and use the
       clone as the shared repository. See gitcvs-migration(7).

OPTIONS
       -v     Verbosity: let cvsimport report what it is doing.

       -d <CVSROOT>
	      The root of the CVS archive. May be local	 (a  simple  path)  or
	      remote;  currently, only the :local:, :ext: and :pserver: access
	      methods are supported. If not given, git cvsimport will  try  to
	      read it from CVS/Root. If no such file exists, it checks for the
	      CVSROOT environment variable.

       <CVS_module>
	      The CVS module you want to import. Relative to <CVSROOT>. If not

								1

GIT-CVSIMPORT(1)				 GIT-CVSIMPORT(1)

	      given, git cvsimport tries to read it from CVS/Repository.

       -C <target-dir>
	      The  git repository to import to. If the directory doesn’t
	      exist, it will be created. Default is the current directory.

       -r <remote>
	      The git remote to import this CVS repository into. Moves all CVS
	      branches	into  remotes/<remote>/<branch>	 akin  to  the way git
	      clone uses origin by default.

       -o <branch-for-HEAD>
	      When no remote is specified (via -r) the HEAD branch from CVS is
	      imported to the origin branch within the git repository, as HEAD
	      already has a special meaning for git. When a remote  is	speci-
	      fied  the HEAD branch is named remotes/<remote>/master mirroring
	      git clone behaviour. Use this option if you want to import  into
	      a different branch.

	      Use  -o  master for continuing an import that was initially done
	      by the old cvs2git tool.

       -i     Import-only: don’t perform	a  checkout  after  importing.
	      This  option  ensures  the  working  directory  and index remain
	      untouched and will not create them if they do not exist.

       -k     Kill keywords: will extract files with -kk from the CVS  archive
	      to  avoid	 noisy	changesets.  Highly  recommended,  but	off by
	      default to preserve compatibility with early imported trees.

       -u     Convert underscores in tag and branch names to dots.

       -s <subst>
	      Substitute the character "/" in branch names with <subst>

       -p <options-for-cvsps>
	      Additional options for cvsps. The options -u and -A are implicit
	      and should not be used here.

	      If  you  need  to	 pass  multiple	 options, separate them with a
	      comma.

       -z <fuzz>
	      Pass the timestamp fuzz factor to cvsps, in seconds.  If	unset,
	      cvsps defaults to 300s.

								2

GIT-CVSIMPORT(1)				 GIT-CVSIMPORT(1)

       -P <cvsps-output-file>
	      Instead  of  calling cvsps, read the provided cvsps output file.
	      Useful for debugging or when  cvsps  is  being  handled  outside
	      cvsimport.

       -m     Attempt  to  detect  merges  based  on  the commit message. This
	      option will enable default  regexes  that	 try  to  capture  the
	      source branch name from the commit message.

       -M <regex>
	      Attempt to detect merges based on the commit message with a cus-
	      tom regex. It can be used with -m to enable the default  regexes
	      as well. You must escape forward slashes.

	      The regex must capture the source branch name in $1.

	      This  option can be used several times to provide several detec-
	      tion regexes.

       -S <regex>
	      Skip paths matching the regex.

       -a     Import all commits, including recent ones. cvsimport by  default
	      skips commits that have a timestamp less than 10 minutes ago.

       -L <limit>
	      Limit the number of commits imported. Workaround for cases where
	      cvsimport leaks memory.

       -A <author-conv-file>
	      CVS by default uses the Unix username when  writing  its	commit
	      logs. Using this option and an author-conv-file in this format

	      .ft C
		      exon=Andreas Ericsson <ae@op5.se>
		      spawn=Simon Pawn <spawn@frog-pond.org>
	      .ft

	      git  cvsimport  will  make  it appear as those authors had their
	      GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along.

	      For convenience, this data is saved to $GIT_DIR/cvs-authors each
	      time the -A option is provided and read from that same file each
	      time git cvsimport is run.

								3

GIT-CVSIMPORT(1)				 GIT-CVSIMPORT(1)

	      It is not recommended to use  this  feature  if  you  intend  to
	      export changes back to CVS again later with git cvsexportcommit.

       -R     Generate a $GIT_DIR/cvs-revisions file containing a mapping from
	      CVS revision numbers to newly-created Git commit IDs. The gener-
	      ated file will contain one line for  each	 (filename,  revision)
	      pair imported; each line will look like

	      .ft C
	      src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7
	      .ft

	      The  revision data is appended to the file if it already exists,
	      for use when doing incremental imports.

	      This option may be useful	 if  you  have	CVS  revision  numbers
	      stored in commit messages, bug-tracking systems, email archives,
	      and the like.

       -h     Print a short usage message and exit.

OUTPUT
       If -v is specified, the script reports what it is doing.

       Otherwise, success is indicated the Unix way, i.e.  by  simply  exiting
       with a zero exit status.

ISSUES
       Problems related to timestamps:

       o  If timestamps of commits in the CVS repository are not stable enough
	  to be used for ordering commits changes may show  up	in  the	 wrong
	  order.

       o  If  any  files were ever "cvs import"ed more than once (e.g., import
	  of more than one vendor release) the HEAD contains  the  wrong  con-
	  tent.

       o  If  the  timestamp order of different files cross the revision order
	  within the commit matching time window the order of commits  may  be
	  wrong.

								4

GIT-CVSIMPORT(1)				 GIT-CVSIMPORT(1)

       Problems related to branches:

       o  Branches on which no commits have been made are not imported.

       o  All  files  from  the	 branching point are added to a branch even if
	  never added in CVS.

       o  This applies to files added to the source branch  after  a  daughter
	  branch was created: if previously no commit was made on the daughter
	  branch they will erroneously be added to the daughter branch in git.

       Problems related to tags:

       o  Multiple tags on the same revision are not imported.

       If you suspect that any of these issues may apply to the repository you
       want to import consider using these alternative tools which  proved  to
       be more stable in practice:

       o  cvs2git (part of cvs2svn), http://cvs2svn.tigris.org

       o  parsecvs, http://cgit.freedesktop.org/~keithp/parsecvs

AUTHOR
       Written	     by	     Matthias	   Urlichs	<smurf@smurf.noris.de:
       mailto:smurf@smurf.noris.de>, with help from  various  participants  of
       the git-list <git@vger.kernel.org: mailto:git@vger.kernel.org>.

DOCUMENTATION
       Documentation	 by	Matthias     Urlichs	<smurf@smurf.noris.de:
       mailto:smurf@smurf.noris.de>.

GIT
       Part of the git(1) suite

								5

[top]

List of man pages available for OpenBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net