blob: 65941326d55f8339cf824ec5433f7066b0ec81f0 [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamanoc9154122006-02-15 02:22:066<meta name="generator" content="AsciiDoc 7.0.2" />
Junio C Hamano1a4e8412005-12-27 08:17:237<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
19a { color: blue; }
20a:visited { color: fuchsia; }
21
22em {
23 font-style: italic;
24}
25
26strong {
27 font-weight: bold;
28}
29
30tt {
31 color: navy;
32}
33
34h1, h2, h3, h4, h5, h6 {
35 color: #527bbd;
36 font-family: sans-serif;
37 margin-top: 1.2em;
38 margin-bottom: 0.5em;
39 line-height: 1.3;
40}
41
42h1 {
43 border-bottom: 2px solid silver;
44}
45h2 {
46 border-bottom: 2px solid silver;
47 padding-top: 0.5em;
48}
49
50div.sectionbody {
51 font-family: serif;
52 margin-left: 0;
53}
54
55hr {
56 border: 1px solid silver;
57}
58
59p {
60 margin-top: 0.5em;
61 margin-bottom: 0.5em;
62}
63
64pre {
65 padding: 0;
66 margin: 0;
67}
68
69span#author {
70 color: #527bbd;
71 font-family: sans-serif;
72 font-weight: bold;
73 font-size: 1.2em;
74}
75span#email {
76}
77span#revision {
78 font-family: sans-serif;
79}
80
81div#footer {
82 font-family: sans-serif;
83 font-size: small;
84 border-top: 2px solid silver;
85 padding-top: 0.5em;
86 margin-top: 4.0em;
87}
88div#footer-text {
89 float: left;
90 padding-bottom: 0.5em;
91}
92div#footer-badges {
93 float: right;
94 padding-bottom: 0.5em;
95}
96
97div#preamble,
98div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
99div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
100div.admonitionblock {
101 margin-right: 10%;
102 margin-top: 1.5em;
103 margin-bottom: 1.5em;
104}
105div.admonitionblock {
106 margin-top: 2.5em;
107 margin-bottom: 2.5em;
108}
109
110div.content { /* Block element content. */
111 padding: 0;
112}
113
114/* Block element titles. */
115div.title, caption.title {
116 font-family: sans-serif;
117 font-weight: bold;
118 text-align: left;
119 margin-top: 1.0em;
120 margin-bottom: 0.5em;
121}
122div.title + * {
123 margin-top: 0;
124}
125
126td div.title:first-child {
127 margin-top: 0.0em;
128}
129div.content div.title:first-child {
130 margin-top: 0.0em;
131}
132div.content + div.title {
133 margin-top: 0.0em;
134}
135
136div.sidebarblock > div.content {
137 background: #ffffee;
138 border: 1px solid silver;
139 padding: 0.5em;
140}
141
142div.listingblock > div.content {
143 border: 1px solid silver;
144 background: #f4f4f4;
145 padding: 0.5em;
146}
147
148div.quoteblock > div.content {
149 padding-left: 2.0em;
150}
151div.quoteblock .attribution {
152 text-align: right;
153}
154
155div.admonitionblock .icon {
156 vertical-align: top;
157 font-size: 1.1em;
158 font-weight: bold;
159 text-decoration: underline;
160 color: #527bbd;
161 padding-right: 0.5em;
162}
163div.admonitionblock td.content {
164 padding-left: 0.5em;
165 border-left: 2px solid silver;
166}
167
168div.exampleblock > div.content {
169 border-left: 2px solid silver;
170 padding: 0.5em;
171}
172
173div.verseblock div.content {
174 white-space: pre;
175}
176
177div.imageblock div.content { padding-left: 0; }
178div.imageblock img { border: 1px solid silver; }
179span.image img { border-style: none; }
180
181dl {
182 margin-top: 0.8em;
183 margin-bottom: 0.8em;
184}
185dt {
186 margin-top: 0.5em;
187 margin-bottom: 0;
188 font-style: italic;
189}
190dd > *:first-child {
191 margin-top: 0;
192}
193
194ul, ol {
195 list-style-position: outside;
196}
197ol.olist2 {
198 list-style-type: lower-alpha;
199}
200
201div.tableblock > table {
202 border-color: #527bbd;
203 border-width: 3px;
204}
205thead {
206 font-family: sans-serif;
207 font-weight: bold;
208}
209tfoot {
210 font-weight: bold;
211}
212
213div.hlist {
214 margin-top: 0.8em;
215 margin-bottom: 0.8em;
216}
217td.hlist1 {
218 vertical-align: top;
219 font-style: italic;
220 padding-right: 0.8em;
221}
222td.hlist2 {
223 vertical-align: top;
224}
225
226@media print {
227 div#footer-badges { display: none; }
228}
229include::./stylesheets/xhtml11-manpage.css[]
230/* Workarounds for IE6's broken and incomplete CSS2. */
231
232div.sidebar-content {
233 background: #ffffee;
234 border: 1px solid silver;
235 padding: 0.5em;
236}
237div.sidebar-title, div.image-title {
238 font-family: sans-serif;
239 font-weight: bold;
240 margin-top: 0.0em;
241 margin-bottom: 0.5em;
242}
243
244div.listingblock div.content {
245 border: 1px solid silver;
246 background: #f4f4f4;
247 padding: 0.5em;
248}
249
250div.quoteblock-content {
251 padding-left: 2.0em;
252}
253
254div.exampleblock-content {
255 border-left: 2px solid silver;
256 padding-left: 0.5em;
257}
258</style>
259<title>git-svnimport(1)</title>
260</head>
261<body>
262<div id="header">
263<h1>
264git-svnimport(1) Manual Page
265</h1>
266<h2>NAME</h2>
267<div class="sectionbody">
268<p>git-svnimport -
269 Import a SVN repository into git
270</p>
271</div>
272</div>
273<h2>SYNOPSIS</h2>
274<div class="sectionbody">
Junio C Hamano9c099c82006-03-03 23:19:48275<div class="verseblock">
276<div class="content"><em>git-svnimport</em> [ -o &lt;branch-for-HEAD&gt; ] [ -h ] [ -v ] [ -d | -D ]
Junio C Hamano2abe7e82006-02-27 07:07:08277 [ -C &lt;GIT_repository&gt; ] [ -i ] [ -u ] [-l limit_rev]
278 [ -b branch_subdir ] [ -T trunk_subdir ] [ -t tag_subdir ]
279 [ -s start_chg ] [ -m ] [ -r ] [ -M regex ]
Junio C Hamano93b02f22006-02-28 00:09:58280 [ -I &lt;ignorefile_name&gt; ] [ -A &lt;author_file&gt; ]
Junio C Hamano1de7bc62006-12-17 19:31:54281 [ -P &lt;path_from_trunk&gt; ]
Junio C Hamano9c099c82006-03-03 23:19:48282 &lt;SVN_repository_URL&gt; [ &lt;path&gt; ]</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23283</div>
284<h2>DESCRIPTION</h2>
285<div class="sectionbody">
286<p>Imports a SVN repository into git. It will either create a new
287repository, or incrementally import into an existing one.</p>
Junio C Hamanoa6331a82006-01-22 07:50:33288<p>SVN access is done by the SVN::Perl module.</p>
Junio C Hamano1a4e8412005-12-27 08:17:23289<p>git-svnimport assumes that SVN repositories are organized into one
290"trunk" directory where the main development happens, "branch/FOO"
291directories for branches, and "/tags/FOO" directories for tags.
292Other subdirectories are ignored.</p>
293<p>git-svnimport creates a file ".git/svn2git", which is required for
294incremental SVN imports.</p>
295</div>
296<h2>OPTIONS</h2>
297<div class="sectionbody">
298<dl>
299<dt>
300-C &lt;target-dir&gt;
301</dt>
302<dd>
303<p>
304 The GIT repository to import to. If the directory doesn't
305 exist, it will be created. Default is the current directory.
306</p>
307</dd>
308<dt>
309-s &lt;start_rev&gt;
310</dt>
311<dd>
312<p>
313 Start importing at this SVN change number. The default is 1.
314</p>
Junio C Hamano235a91e2006-01-07 01:13:58315<p>When importing incrementally, you might need to edit the .git/svn2git file.</p>
Junio C Hamano1a4e8412005-12-27 08:17:23316</dd>
317<dt>
318-i
319</dt>
320<dd>
321<p>
322 Import-only: don't perform a checkout after importing. This option
323 ensures the working directory and index remain untouched and will
324 not create them if they do not exist.
325</p>
326</dd>
327<dt>
Junio C Hamano235a91e2006-01-07 01:13:58328-T &lt;trunk_subdir&gt;
Junio C Hamano1a4e8412005-12-27 08:17:23329</dt>
330<dd>
331<p>
332 Name the SVN trunk. Default "trunk".
333</p>
334</dd>
335<dt>
Junio C Hamano235a91e2006-01-07 01:13:58336-t &lt;tag_subdir&gt;
Junio C Hamano1a4e8412005-12-27 08:17:23337</dt>
338<dd>
339<p>
340 Name the SVN subdirectory for tags. Default "tags".
341</p>
342</dd>
343<dt>
344-b &lt;branch_subdir&gt;
345</dt>
346<dd>
347<p>
348 Name the SVN subdirectory for branches. Default "branches".
349</p>
350</dd>
351<dt>
352-o &lt;branch-for-HEAD&gt;
353</dt>
354<dd>
355<p>
356 The <em>trunk</em> branch from SVN is imported to the <em>origin</em> branch within
357 the git repository. Use this option if you want to import into a
358 different branch.
359</p>
360</dd>
361<dt>
Junio C Hamanoc9154122006-02-15 02:22:06362-r
363</dt>
364<dd>
365<p>
366 Prepend <em>rX: </em> to commit messages, where X is the imported
367 subversion revision.
368</p>
369</dd>
370<dt>
Junio C Hamano2abe7e82006-02-27 07:07:08371-I &lt;ignorefile_name&gt;
372</dt>
373<dd>
374<p>
375 Import the svn:ignore directory property to files with this
376 name in each directory. (The Subversion and GIT ignore
377 syntaxes are similar enough that using the Subversion patterns
378 directly with "-I .gitignore" will almost always just work.)
379</p>
380</dd>
381<dt>
Junio C Hamano93b02f22006-02-28 00:09:58382-A &lt;author_file&gt;
383</dt>
384<dd>
385<p>
386 Read a file with lines on the form
387</p>
Junio C Hamanoa725a532006-03-21 08:33:47388<div class="listingblock">
Junio C Hamano93b02f22006-02-28 00:09:58389<div class="content">
Junio C Hamanoa725a532006-03-21 08:33:47390<pre><tt> username = User's Full Name &lt;email@addr.es&gt;
391</tt></pre>
Junio C Hamano93b02f22006-02-28 00:09:58392</div></div>
Junio C Hamanoa725a532006-03-21 08:33:47393<p>and use "User's Full Name &lt;email@addr.es&gt;" as the GIT
Junio C Hamano93b02f22006-02-28 00:09:58394author and committer for Subversion commits made by
395"username". If encountering a commit made by a user not in the
Junio C Hamanoa725a532006-03-21 08:33:47396list, abort.</p>
397<p>For convenience, this data is saved to $GIT_DIR/svn-authors
Junio C Hamanoadb91282006-03-02 08:11:49398each time the -A option is provided, and read from that same
399file each time git-svnimport is run with an existing GIT
Junio C Hamanoa725a532006-03-21 08:33:47400repository without -A.</p>
Junio C Hamano93b02f22006-02-28 00:09:58401</dd>
402<dt>
Junio C Hamano1a4e8412005-12-27 08:17:23403-m
404</dt>
405<dd>
406<p>
407 Attempt to detect merges based on the commit message. This option
408 will enable default regexes that try to capture the name source
409 branch name from the commit message.
410</p>
411</dd>
412<dt>
413-M &lt;regex&gt;
414</dt>
415<dd>
416<p>
417 Attempt to detect merges based on the commit message with a custom
418 regex. It can be used with -m to also see the default regexes.
419 You must escape forward slashes.
420</p>
421</dd>
422<dt>
423-l &lt;max_rev&gt;
424</dt>
425<dd>
426<p>
427 Specify a maximum revision number to pull.
428</p>
Junio C Hamano1de7bc62006-12-17 19:31:54429<p>Formerly, this option controlled how many revisions to pull,
430due to SVN memory leaks. (These have been worked around.)</p>
431</dd>
432<dt>
433-P &lt;path_from_trunk&gt;
434</dt>
435<dd>
436<p>
437 Partial import of the SVN tree.
438</p>
439<p>By default, the whole tree on the SVN trunk (/trunk) is imported.
440<em>-P my/proj</em> will import starting only from <em>/trunk/my/proj</em>.
441This option is useful when you want to import one project from a
442svn repo which hosts multiple projects under the same trunk.</p>
Junio C Hamano1a4e8412005-12-27 08:17:23443</dd>
444<dt>
445-v
446</dt>
447<dd>
448<p>
449 Verbosity: let <em>svnimport</em> report what it is doing.
450</p>
451</dd>
452<dt>
453-d
454</dt>
455<dd>
456<p>
457 Use direct HTTP requests if possible. The "&lt;path&gt;" argument is used
458 only for retrieving the SVN logs; the path to the contents is
459 included in the SVN log.
460</p>
461</dd>
462<dt>
463-D
464</dt>
465<dd>
466<p>
467 Use direct HTTP requests if possible. The "&lt;path&gt;" argument is used
468 for retrieving the logs, as well as for the contents.
469</p>
470<p>There's no safe way to automatically find out which of these options to
471use, so you need to try both. Usually, the one that's wrong will die
472with a 40x error pretty quickly.</p>
473</dd>
474<dt>
475&lt;SVN_repository_URL&gt;
476</dt>
477<dd>
478<p>
479 The URL of the SVN module you want to import. For local
480 repositories, use "file:///absolute/path".
481</p>
482<p>If you're using the "-d" or "-D" option, this is the URL of the SVN
483repository itself; it usually ends in "/svn".</p>
484</dd>
485<dt>
Junio C Hamanoa6331a82006-01-22 07:50:33486&lt;path&gt;
Junio C Hamano1a4e8412005-12-27 08:17:23487</dt>
488<dd>
489<p>
Junio C Hamanoa6331a82006-01-22 07:50:33490 The path to the module you want to check out.
Junio C Hamano1a4e8412005-12-27 08:17:23491</p>
492</dd>
Junio C Hamano1a4e8412005-12-27 08:17:23493<dt>
494-h
495</dt>
496<dd>
497<p>
498 Print a short usage message and exit.
499</p>
500</dd>
501</dl>
502</div>
503<h2>OUTPUT</h2>
504<div class="sectionbody">
505<p>If <em>-v</em> is specified, the script reports what it is doing.</p>
506<p>Otherwise, success is indicated the Unix way, i.e. by simply exiting with
507a zero exit status.</p>
508</div>
509<h2>Author</h2>
510<div class="sectionbody">
511<p>Written by Matthias Urlichs &lt;smurf@smurf.noris.de&gt;, with help from
512various participants of the git-list &lt;git@vger.kernel.org&gt;.</p>
513<p>Based on a cvs2git script by the same author.</p>
514</div>
515<h2>Documentation</h2>
516<div class="sectionbody">
517<p>Documentation by Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p>
518</div>
519<h2>GIT</h2>
520<div class="sectionbody">
521<p>Part of the <a href="git.html">git(7)</a> suite</p>
522</div>
523<div id="footer">
524<div id="footer-text">
Junio C Hamano1de7bc62006-12-17 19:31:54525Last updated 17-Dec-2006 19:31:44 UTC
Junio C Hamano1a4e8412005-12-27 08:17:23526</div>
527</div>
528</body>
529</html>