8e47f32ecaeafef65d7dfffea0f5e28b0ef457be
[git.git] / man1 / git-svnimport.1
1 .\"Generated by db2man.xsl. Don't modify this, modify the source.
2 .de Sh \" Subsection
3 .br
4 .if t .Sp
5 .ne 5
6 .PP
7 \fB\\$1\fR
8 .PP
9 ..
10 .de Sp \" Vertical space (when we can't use .PP)
11 .if t .sp .5v
12 .if n .sp
13 ..
14 .de Ip \" List item
15 .br
16 .ie \\n(.$>=3 .ne \\$3
17 .el .ne 3
18 .IP "\\$1" \\$2
19 ..
20 .TH "GIT-SVNIMPORT" 1 "" "" ""
21 .SH NAME
22 git-svnimport \- Import a SVN repository into git
23 .SH "SYNOPSIS"
24
25
26 \fIgit\-svnimport\fR [ \-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> ] <SVN_repository_URL> [ <path> ]
27
28 .SH "DESCRIPTION"
29
30
31 Imports a SVN repository into git\&. It will either create a new repository, or incrementally import into an existing one\&.
32
33
34 SVN access is done by the SVN::Perl module\&.
35
36
37 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\&.
38
39
40 git\-svnimport creates a file "\&.git/svn2git", which is required for incremental SVN imports\&.
41
42 .SH "OPTIONS"
43
44 .TP
45 \-C <target\-dir>
46 The GIT repository to import to\&. If the directory doesn't exist, it will be created\&. Default is the current directory\&.
47
48 .TP
49 \-s <start_rev>
50 Start importing at this SVN change number\&. The default is 1\&.
51
52 When importing incrementally, you might need to edit the \&.git/svn2git file\&.
53
54 .TP
55 \-i
56 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\&.
57
58 .TP
59 \-T <trunk_subdir>
60 Name the SVN trunk\&. Default "trunk"\&.
61
62 .TP
63 \-t <tag_subdir>
64 Name the SVN subdirectory for tags\&. Default "tags"\&.
65
66 .TP
67 \-b <branch_subdir>
68 Name the SVN subdirectory for branches\&. Default "branches"\&.
69
70 .TP
71 \-o <branch\-for\-HEAD>
72 The \fItrunk\fR branch from SVN is imported to the \fIorigin\fR branch within the git repository\&. Use this option if you want to import into a different branch\&.
73
74 .TP
75 \-r
76 Prepend \fIrX: \fR to commit messages, where X is the imported subversion revision\&.
77
78 .TP
79 \-I <ignorefile_name>
80 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\&.)
81
82 .TP
83 \-A <author_file>
84 Read a file with lines on the form
85
86 .nf
87 username = User's Full Name <email@addr\&.es>
88 .fi
89
90 .nf
91 and use "User's Full Name <email@addr\&.es>" as the GIT
92 author and committer for Subversion commits made by
93 "username"\&. If encountering a commit made by a user not in the
94 list, abort\&.
95 .fi
96
97 .TP
98 \-m
99 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\&.
100
101 .TP
102 \-M <regex>
103 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\&.
104
105 .TP
106 \-l <max_rev>
107 Specify a maximum revision number to pull\&.
108
109 .nf
110 Formerly, this option controlled how many revisions to pull,
111 due to SVN memory leaks\&. (These have been worked around\&.)
112 .fi
113
114 .TP
115 \-v
116 Verbosity: let \fIsvnimport\fR report what it is doing\&.
117
118 .TP
119 \-d
120 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\&.
121
122 .TP
123 \-D
124 Use direct HTTP requests if possible\&. The "<path>" argument is used for retrieving the logs, as well as for the contents\&.
125
126 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\&.
127
128 .TP
129 <SVN_repository_URL>
130 The URL of the SVN module you want to import\&. For local repositories, use "file:///absolute/path"\&.
131
132 If you're using the "\-d" or "\-D" option, this is the URL of the SVN repository itself; it usually ends in "/svn"\&.
133
134 .TP
135 <path>
136 The path to the module you want to check out\&.
137
138 .TP
139 \-h
140 Print a short usage message and exit\&.
141
142 .SH "OUTPUT"
143
144
145 If \fI\-v\fR is specified, the script reports what it is doing\&.
146
147
148 Otherwise, success is indicated the Unix way, i\&.e\&. by simply exiting with a zero exit status\&.
149
150 .SH "AUTHOR"
151
152
153 Written by Matthias Urlichs <smurf@smurf\&.noris\&.de>, with help from various participants of the git\-list <git@vger\&.kernel\&.org>\&.
154
155
156 Based on a cvs2git script by the same author\&.
157
158 .SH "DOCUMENTATION"
159
160
161 Documentation by Matthias Urlichs <smurf@smurf\&.noris\&.de>\&.
162
163 .SH "GIT"
164
165
166 Part of the \fBgit\fR(7) suite
167