| git-svnimport(1) | 
 | ================ | 
 | v0.1, July 2005 | 
 |  | 
 | NAME | 
 | ---- | 
 | git-svnimport - Import a SVN repository into git | 
 |  | 
 |  | 
 | SYNOPSIS | 
 | -------- | 
 | [verse] | 
 | 'git-svnimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d | -D ] | 
 | 		[ -C <GIT_repository> ] [ -i ] [ -u ] [-l limit_rev] | 
 | 		[ -b branch_subdir ] [ -T trunk_subdir ] [ -t tag_subdir ] | 
 | 		[ -s start_chg ] [ -m ] [ -r ] [ -M regex ] | 
 | 		[ -I <ignorefile_name> ] [ -A <author_file> ] | 
 | 		[ -R <repack_each_revs>] [ -P <path_from_trunk> ] | 
 | 		<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, "branches/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 incrementally, 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 index 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. | 
 |  | 
 | -r:: | 
 | 	Prepend 'rX: ' to commit messages, where X is the imported | 
 | 	subversion revision. | 
 |  | 
 | -u:: | 
 | 	Replace underscores in tag names with periods. | 
 |  | 
 | -I <ignorefile_name>:: | 
 | 	Import the svn:ignore directory property to files with this | 
 | 	name in each directory. (The Subversion and GIT ignore | 
 | 	syntaxes are similar enough that using the Subversion patterns | 
 | 	directly with "-I .gitignore" will almost always just work.) | 
 |  | 
 | -A <author_file>:: | 
 | 	Read a file with lines on the form | 
 | + | 
 | ------ | 
 | 	username = User's Full Name <email@addr.es> | 
 |  | 
 | ------ | 
 | + | 
 | and use "User's Full Name <email@addr.es>" as the GIT | 
 | author and committer for Subversion commits made by | 
 | "username". If encountering a commit made by a user not in the | 
 | list, abort. | 
 | + | 
 | For convenience, this data is saved to $GIT_DIR/svn-authors | 
 | each time the -A option is provided, and read from that same | 
 | file each time git-svnimport is run with an existing GIT | 
 | repository without -A. | 
 |  | 
 | -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_rev>:: | 
 | 	Specify a maximum revision number to pull. | 
 | + | 
 | Formerly, this option controlled how many revisions to pull, | 
 | due to SVN memory leaks. (These have been worked around.) | 
 |  | 
 | -R <repack_each_revs>:: | 
 | 	Specify how often git repository should be repacked. | 
 | + | 
 | The default value is 1000. git-svnimport will do imports in chunks of 1000 | 
 | revisions, after each chunk the git repository will be repacked. To disable | 
 | this behavior specify some large value here which is greater than the number of | 
 | revisions to import. | 
 |  | 
 | -P <path_from_trunk>:: | 
 | 	Partial import of the SVN tree. | 
 | + | 
 | By default, the whole tree on the SVN trunk (/trunk) is imported. | 
 | '-P my/proj' will import starting only from '/trunk/my/proj'. | 
 | This option is useful when you want to import one project from a | 
 | svn repo which hosts multiple projects under the same trunk. | 
 |  | 
 | -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". | 
 |  | 
 | <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 |