git-svnimport(1)
================
v0.1, July 2005

NAME
----
git-svnimport - Import a SVN repository into git


SYNOPSIS
--------
'git-svnimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d | -D ]
			[ -C <GIT_repository> ] [ -i ] [ -u ] [-l limit_nr_changes]
			[ -b branch_subdir ] [ -t trunk_subdir ] [ -T tag_subdir ]
			[ -s start_chg ] [ -m ] [ -M regex ]
			<SVN_repository_URL> [ <path> ]


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

SVN access is done by the SVN:: Perl module.

git-svnimport assumes that SVN repositories are organized into one
"trunk" directory where the main development happens, "branch/FOO"
directories for branches, and "/tags/FOO" directories for tags.
Other subdirectories are ignored.

git-svnimport creates a file ".git/svn2git", which is required for
incremental SVN imports.

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

-s <start_rev>::
        Start importing at this SVN change number. The  default is 1.
+
When importing incementally, you might need to edit the .git/svn2git file.

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

-t <trunk_subdir>::
	Name the SVN trunk. Default "trunk".

-T <tag_subdir>::
	Name the SVN subdirectory for tags. Default "tags".

-b <branch_subdir>::
	Name the SVN subdirectory for branches. Default "branches".

-o <branch-for-HEAD>::
	The 'trunk' branch from SVN is imported to the 'origin' branch within
	the git repository. Use this option if you want to import into a
	different branch.

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

-l <max_num_changes>::
	Limit the number of SVN changesets we pull before quitting.
	This option is necessary because the SVN library has serious memory
	leaks; the recommended value for nontrivial imports is 100.

	git-svnimport will still exit with a zero exit code. You can check
	the size of the file ".git/svn2git" to determine whether to call
	the importer again.

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

-d::
	Use direct HTTP requests if possible. The "<path>" argument is used
	only for retrieving the SVN logs; the path to the contents is
	included in the SVN log.

-D::
	Use direct HTTP requests if possible. The "<path>" argument is used
	for retrieving the logs, as well as for the contents.
+
There's no safe way to automatically find out which of these options to
use, so you need to try both. Usually, the one that's wrong will die
with a 40x error pretty quickly.

<SVN_repository_URL>::
	The URL of the SVN module you want to import. For local
	repositories, use "file:///absolute/path".
+
If you're using the "-d" or "-D" option, this is the URL of the SVN
repository itself; it usually ends in "/svn".

<SVN_repository_URL>::
	The URL of the SVN module you want to import. For local
	repositories, use "file:///absolute/path".

<path>
	The path to the module you want to check out.

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

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

Based on a cvs2git script by the same author.

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

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

