You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
5.2 KiB
177 lines
5.2 KiB
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. |
|
|
|
-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 import in chunks of 1000 |
|
revisions, after each chunk git repository will be repacked. To disable |
|
this behavior specify some big value here which is mote than 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 |
|
|
|
|