git-svn.txt: make formatting more consistent.
- correctly link paragraphs within list items - consistently format examples - put option alernatives on separate lines - always use [verse] for config items - always indent 1st paragraph of a list item, with a tab Signed-off-by: Yann Dirson <ydirson@altern.org> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Yann Dirson committed
Jul 7, 2009 at 22:22 UTC
6c32a7a99495da3f49e2a142791bc10af3f6f059
1 file changed
+101
-110
Documentation/git-svn.txt
+101
-110
@@ -26,7 +26,6 @@ Subversion updated from git by the 'dcommit' command.
26
27
COMMANDS
28
--------
29
---
29
30
'init'::
31
Initializes an empty git repository with additional
@@ -105,7 +104,7 @@ COMMANDS
104
105
--parent;;
106
Fetch only from the SVN parent of the current HEAD.
108
-
107
++
108
This doesn't interfere with interoperating with the Subversion
109
repository you cloned from, but if you wish for your local Git
110
repository to be able to interoperate with someone else's local Git
@@ -118,20 +117,28 @@ the same local timezone.
117
The '--ignore-paths' option should match for every 'fetch'
118
(including automatic fetches due to 'clone', 'dcommit',
119
'rebase', etc) on a given repository.
121
-
120
++
121
+[verse]
122
config key: svn-remote.<name>.ignore-paths
123
-
124
- If the ignore-paths config key is set and the command
125
- line option is also given, both regular expressions
126
- will be used.
127
-
123
++
124
+If the ignore-paths config key is set and the command line option is
125
+also given, both regular expressions will be used.
126
++
127
Examples:
128
++
129
+--
130
+Skip "doc*" directory for every fetch;;
131
++
132
+------------------------------------------------------------------------
133
+--ignore-paths="^doc"
134
+------------------------------------------------------------------------
135
130
- --ignore-paths="^doc" - skip "doc*" directory for every
131
- fetch.
132
-
133
- --ignore-paths="^[^/]+/(?:branches|tags)" - skip
134
- "branches" and "tags" of first level directories.
136
+Skip "branches" and "tags" of first level directories;;
137
++
138
+------------------------------------------------------------------------
139
+--ignore-paths="^[^/]+/(?:branches|tags)"
140
+------------------------------------------------------------------------
141
+--
142
143
'clone'::
144
Runs 'init' and 'fetch'. It will automatically create a
@@ -147,15 +154,15 @@ Examples:
154
'rebase'::
155
This fetches revisions from the SVN parent of the current HEAD
156
and rebases the current (uncommitted to SVN) work against it.
150
-
157
++
158
This works similarly to `svn update` or 'git pull' except that
159
it preserves linear history with 'git rebase' instead of
160
'git merge' for ease of dcommitting with 'git svn'.
154
-
161
++
162
This accepts all options that 'git svn fetch' and 'git rebase'
163
accept. However, '--fetch-all' only fetches from the current
164
[svn-remote], and not all [svn-remote] definitions.
158
-
165
++
166
Like 'git rebase'; this requires that the working tree be clean
167
and have no uncommitted changes.
168
@@ -186,14 +193,13 @@ and have no uncommitted changes.
193
method (e.g. `svn://` or `http://` for anonymous read) to be
194
reused if a user is later given access to an alternate transport
195
method (e.g. `svn+ssh://` or `https://`) for commit.
189
-
196
++
197
+[verse]
198
config key: svn-remote.<name>.commiturl
191
-
199
config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)
193
-
194
- Using this option for any other purpose (don't ask)
195
- is very strongly discouraged.
196
---
200
++
201
+Using this option for any other purpose (don't ask) is very strongly
202
+discouraged.
203
204
'branch'::
205
Create a branch in the SVN repository.
@@ -232,10 +238,12 @@ where <name> is the name of the SVN repository as specified by the -R option to
238
The following features from `svn log' are supported:
239
+
240
--
235
--r/--revision=<n>[:<n>];;
241
+-r <n>[:<n>];;
242
+--revision=<n>[:<n>];;
243
is supported, non-numeric args are not:
244
HEAD, NEXT, BASE, PREV, etc ...
238
--v/--verbose;;
245
+-v;;
246
+--verbose;;
247
it's not completely compatible with the --verbose
248
output in svn log, but reasonably close.
249
--limit=<n>;;
@@ -274,7 +282,6 @@ Any other arguments are passed directly to 'git log'
282
changes that haven't been committed to SVN (including local
283
working-copy edits) are shown as revision 0.
284
277
---
285
'find-rev'::
286
When given an SVN revision number of the form 'rN', returns the
287
corresponding git commit hash (this can optionally be followed by a
@@ -340,58 +347,56 @@ Any other arguments are passed directly to 'git log'
347
"checksum mismatch" (missed a modification). If the problem
348
file cannot be ignored forever (with --ignore-paths) the only
349
way to repair the repo is to use 'reset'.
343
-
350
++
351
Only the rev_map and refs/remotes/git-svn are changed. Follow 'reset'
352
with a 'fetch' and then 'git reset' or 'git rebase' to move local
353
branches onto the new tree.
354
348
--r/--revision=<n>;;
355
+-r <n>;;
356
+--revision=<n>;;
357
Specify the most recent revision to keep. All later revisions
358
are discarded.
351
--p/--parent;;
359
+-p;;
360
+--parent;;
361
Discard the specified revision as well, keeping the nearest
362
parent instead.
363
Example:;;
364
Assume you have local changes in "master", but you need to refetch "r2".
356
-
365
++
366
------------
367
r1---r2---r3 remotes/git-svn
368
\
369
A---B master
370
------------
362
-
371
++
372
Fix the ignore-paths or SVN permissions problem that caused "r2" to
373
be incomplete in the first place. Then:
365
-
374
++
375
[verse]
376
git svn reset -r2 -p
377
git svn fetch
369
-
378
++
379
------------
380
r1---r2'--r3' remotes/git-svn
381
\
382
r2---r3---A---B master
383
------------
375
-
384
++
385
Then fixup "master" with 'git rebase'.
386
Do NOT use 'git merge' or your history will not be compatible with a
387
future 'dcommit'!
379
-
388
++
389
[verse]
390
git rebase --onto remotes/git-svn A^ master
382
-
391
++
392
------------
393
r1---r2'--r3' remotes/git-svn
394
\
395
A'--B' master
396
------------
397
389
-
390
---
391
-
398
OPTIONS
399
-------
394
---
400
401
--shared[={false|true|umask|group|all|world|everybody}]::
402
--template=<template_directory>::
@@ -400,85 +405,81 @@ OPTIONS
405
406
-r <ARG>::
407
--revision <ARG>::
403
-
404
-Used with the 'fetch' command.
405
-
408
+ Used with the 'fetch' command.
409
++
410
This allows revision ranges for partial/cauterized history
411
to be supported. $NUMBER, $NUMBER1:$NUMBER2 (numeric ranges),
412
$NUMBER:HEAD, and BASE:$NUMBER are all supported.
409
-
413
++
414
This can allow you to make partial mirrors when running fetch;
415
but is generally not recommended because history will be skipped
416
and lost.
417
418
-::
419
--stdin::
416
-
417
-Only used with the 'set-tree' command.
418
-
420
+ Only used with the 'set-tree' command.
421
++
422
Read a list of commits from stdin and commit them in reverse
423
order. Only the leading sha1 is read from each line, so
424
'git rev-list --pretty=oneline' output can be used.
425
426
--rmdir::
424
-
425
-Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
426
-
427
+ Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
428
++
429
Remove directories from the SVN tree if there are no files left
430
behind. SVN can version empty directories, and they are not
431
removed by default if there are no files left in them. git
432
cannot version empty directories. Enabling this flag will make
433
the commit to SVN act like git.
432
-
434
++
435
+[verse]
436
config key: svn.rmdir
437
438
-e::
439
--edit::
437
-
438
-Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
439
-
440
+ Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
441
++
442
Edit the commit message before committing to SVN. This is off by
443
default for objects that are commits, and forced on when committing
444
tree objects.
443
-
445
++
446
+[verse]
447
config key: svn.edit
448
449
-l<num>::
450
--find-copies-harder::
448
-
449
-Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
450
-
451
+ Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
452
++
453
They are both passed directly to 'git diff-tree'; see
454
linkgit:git-diff-tree[1] for more information.
453
-
455
++
456
[verse]
457
config key: svn.l
458
config key: svn.findcopiesharder
459
460
-A<filename>::
461
--authors-file=<filename>::
460
-
461
-Syntax is compatible with the file used by 'git cvsimport':
462
-
462
+ Syntax is compatible with the file used by 'git cvsimport':
463
++
464
------------------------------------------------------------------------
465
loginname = Joe User <user@example.com>
466
------------------------------------------------------------------------
466
-
467
++
468
If this option is specified and 'git svn' encounters an SVN
469
committer name that does not exist in the authors-file, 'git svn'
470
will abort operation. The user will then have to add the
471
appropriate entry. Re-running the previous 'git svn' command
472
after the authors-file is modified should continue operation.
472
-
473
++
474
+[verse]
475
config key: svn.authorsfile
476
477
--authors-prog=<filename>::
476
-
477
-If this option is specified, for each SVN committer name that does not
478
-exist in the authors file, the given file is executed with the committer
479
-name as the first argument. The program is expected to return a single
480
-line of the form "Name <email>", which will be treated as if included in
481
-the authors file.
478
+ If this option is specified, for each SVN committer name that
479
+ does not exist in the authors file, the given file is executed
480
+ with the committer name as the first argument. The program is
481
+ expected to return a single line of the form "Name <email>",
482
+ which will be treated as if included in the authors file.
483
484
-q::
485
--quiet::
@@ -487,16 +488,15 @@ the authors file.
488
489
--repack[=<n>]::
490
--repack-flags=<flags>::
490
-
491
-These should help keep disk usage sane for large fetches
492
-with many revisions.
493
-
491
+ These should help keep disk usage sane for large fetches with
492
+ many revisions.
493
++
494
--repack takes an optional argument for the number of revisions
495
to fetch before repacking. This defaults to repacking every
496
1000 commits fetched if no argument is specified.
497
-
497
++
498
--repack-flags are passed directly to 'git repack'.
499
-
499
++
500
[verse]
501
config key: svn.repack
502
config key: svn.repackflags
@@ -505,41 +505,36 @@ config key: svn.repackflags
505
--merge::
506
-s<strategy>::
507
--strategy=<strategy>::
508
-
509
-These are only used with the 'dcommit' and 'rebase' commands.
510
-
508
+ These are only used with the 'dcommit' and 'rebase' commands.
509
++
510
Passed directly to 'git rebase' when using 'dcommit' if a
511
'git reset' cannot be used (see 'dcommit').
512
513
-n::
514
--dry-run::
516
-
517
-This can be used with the 'dcommit', 'rebase', 'branch' and 'tag'
518
-commands.
519
-
515
+ This can be used with the 'dcommit', 'rebase', 'branch' and
516
+ 'tag' commands.
517
++
518
For 'dcommit', print out the series of git arguments that would show
519
which diffs would be committed to SVN.
522
-
520
++
521
For 'rebase', display the local branch associated with the upstream svn
522
repository associated with the current branch and the URL of svn
523
repository that will be fetched from.
526
-
524
++
525
For 'branch' and 'tag', display the urls that will be used for copying when
526
creating the branch or tag.
527
530
---
528
529
ADVANCED OPTIONS
530
----------------
534
---
531
532
-i<GIT_SVN_ID>::
533
--id <GIT_SVN_ID>::
538
-
539
-This sets GIT_SVN_ID (instead of using the environment). This
540
-allows the user to override the default refname to fetch from
541
-when tracking a single URL. The 'log' and 'dcommit' commands
542
-no longer require this switch as an argument.
534
+ This sets GIT_SVN_ID (instead of using the environment). This
535
+ allows the user to override the default refname to fetch from
536
+ when tracking a single URL. The 'log' and 'dcommit' commands
537
+ no longer require this switch as an argument.
538
539
-R<remote name>::
540
--svn-remote <remote name>::
@@ -553,33 +548,30 @@ no longer require this switch as an argument.
548
started tracking a branch and never tracked the trunk it was
549
descended from. This feature is enabled by default, use
550
--no-follow-parent to disable it.
556
-
551
++
552
+[verse]
553
config key: svn.followparent
554
559
---
555
CONFIG FILE-ONLY OPTIONS
556
------------------------
562
---
557
558
svn.noMetadata::
559
svn-remote.<name>.noMetadata::
566
-
567
-This gets rid of the 'git-svn-id:' lines at the end of every commit.
568
-
560
+ This gets rid of the 'git-svn-id:' lines at the end of every commit.
561
++
562
If you lose your .git/svn/git-svn/.rev_db file, 'git svn' will not
563
be able to rebuild it and you won't be able to fetch again,
564
either. This is fine for one-shot imports.
572
-
565
++
566
The 'git svn log' command will not work on repositories using
567
this, either. Using this conflicts with the 'useSvmProps'
568
option for (hopefully) obvious reasons.
569
570
svn.useSvmProps::
571
svn-remote.<name>.useSvmProps::
579
-
580
-This allows 'git svn' to re-map repository URLs and UUIDs from
581
-mirrors created using SVN::Mirror (or svk) for metadata.
582
-
572
+ This allows 'git svn' to re-map repository URLs and UUIDs from
573
+ mirrors created using SVN::Mirror (or svk) for metadata.
574
++
575
If an SVN revision has a property, "svm:headrev", it is likely
576
that the revision was created by SVN::Mirror (also used by SVK).
577
The property contains a repository UUID and a revision. We want
@@ -602,14 +594,13 @@ svn-remote.<name>.rewriteRoot::
594
metadata so users of it will see the public URL.
595
596
svn.brokenSymlinkWorkaround::
605
-This disables potentially expensive checks to workaround broken symlinks
606
-checked into SVN by broken clients. Set this option to "false" if you
607
-track a SVN repository with many empty blobs that are not symlinks.
608
-This option may be changed while 'git svn' is running and take effect on
609
-the next revision fetched. If unset, 'git svn' assumes this option to be
610
-"true".
611
-
612
---
597
+ This disables potentially expensive checks to workaround
598
+ broken symlinks checked into SVN by broken clients. Set this
599
+ option to "false" if you track a SVN repository with many
600
+ empty blobs that are not symlinks. This option may be changed
601
+ while 'git svn' is running and take effect on the next
602
+ revision fetched. If unset, 'git svn' assumes this option to
603
+ be "true".
604
605
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
606
options all affect the metadata generated and used by 'git svn'; they