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