Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			180 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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
 |