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