git-cvsimport(1)
================

NAME
----
git-cvsimport - Import a CVS repository into git


SYNOPSIS
--------
'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
			[ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
			[ -C <git_repository> ] [ -i ] [ -k ]
			[ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]


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

Splitting the CVS log into patch sets is done by 'cvsps'.
At least version 2.1 is required.

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

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

-i::
	Import-only: don't perform a checkout after importing.  This option
	ensures the working directory and cache 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.

-o <branch-for-HEAD>::
	The 'HEAD' branch from CVS is imported to the 'origin' branch within
	the git repository, as 'HEAD' already has a special meaning for git.
	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.

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

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

-M <regex>::
	Attempt to detect merges based on the commit message with a custom
	regex. It can be used with -m to also see the default regexes. 
	You must escape forward slashes. 

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

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

-h::
	Print a short usage message and exit.

-z <fuzz>::
        Pass the timestamp fuzz factor to cvsps.

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

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.


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

Documentation
--------------
Documentation by Matthias Urlichs <smurf@smurf.noris.de>.

GIT
---
Part of the gitlink:git[7] suite

