@@ -11,11 +11,11 @@ SYNOPSIS
11
11
12
12
DESCRIPTION
13
13
-----------
14
- 'git- svn' is a simple conduit for changesets between Subversion and git.
14
+ 'git svn' is a simple conduit for changesets between Subversion and git.
15
15
It provides a bidirectional flow of changes between a Subversion and a git
16
16
repository.
17
17
18
- 'git- svn' can track a standard Subversion repository,
18
+ 'git svn' can track a standard Subversion repository,
19
19
following the common "trunk/branches/tags" layout, with the --stdlayout option.
20
20
It can also follow branches and tags in any layout with the -T/-t/-b options
21
21
(see options to 'init' below, and also the 'clone' command).
@@ -30,7 +30,7 @@ COMMANDS
30
30
31
31
'init'::
32
32
Initializes an empty git repository with additional
33
- metadata directories for 'git- svn'. The Subversion URL
33
+ metadata directories for 'git svn'. The Subversion URL
34
34
may be specified as a command-line argument, or as full
35
35
URL arguments to -T/-t/-b. Optionally, the target
36
36
directory to operate on can be specified as a second
@@ -100,7 +100,7 @@ COMMANDS
100
100
101
101
--localtime;;
102
102
Store Git commit times in the local timezone instead of UTC. This
103
- makes 'git- log' (even without --date=local) show the same times
103
+ makes 'git log' (even without --date=local) show the same times
104
104
that `svn log` would in the local timezone.
105
105
106
106
--parent;;
@@ -148,32 +148,32 @@ Examples:
148
148
This fetches revisions from the SVN parent of the current HEAD
149
149
and rebases the current (uncommitted to SVN) work against it.
150
150
151
- This works similarly to `svn update` or 'git- pull' except that
152
- it preserves linear history with 'git- rebase' instead of
153
- 'git- merge' for ease of dcommitting with 'git- svn'.
151
+ This works similarly to `svn update` or 'git pull' except that
152
+ it preserves linear history with 'git rebase' instead of
153
+ 'git merge' for ease of dcommitting with 'git svn'.
154
154
155
- This accepts all options that 'git- svn fetch' and 'git- rebase'
155
+ This accepts all options that 'git svn fetch' and 'git rebase'
156
156
accept. However, '--fetch-all' only fetches from the current
157
157
[svn-remote], and not all [svn-remote] definitions.
158
158
159
- Like 'git- rebase'; this requires that the working tree be clean
159
+ Like 'git rebase'; this requires that the working tree be clean
160
160
and have no uncommitted changes.
161
161
162
162
-l;;
163
163
--local;;
164
- Do not fetch remotely; only run 'git- rebase' against the
164
+ Do not fetch remotely; only run 'git rebase' against the
165
165
last fetched commit from the upstream SVN.
166
166
167
167
'dcommit'::
168
168
Commit each diff from a specified head directly to the SVN
169
169
repository, and then rebase or reset (depending on whether or
170
170
not there is a diff between SVN and head). This will create
171
171
a revision in SVN for each commit in git.
172
- It is recommended that you run 'git- svn' fetch and rebase (not
172
+ It is recommended that you run 'git svn' fetch and rebase (not
173
173
pull or merge) your commits against the latest changes in the
174
174
SVN repository.
175
175
An optional revision or branch argument may be specified, and
176
- causes 'git- svn' to do all work on that revision/branch
176
+ causes 'git svn' to do all work on that revision/branch
177
177
instead of HEAD.
178
178
This is advantageous over 'set-tree' (below) because it produces
179
179
cleaner, more linear history.
@@ -182,7 +182,7 @@ and have no uncommitted changes.
182
182
After committing, do not rebase or reset.
183
183
--commit-url <URL>;;
184
184
Commit to this SVN URL (the full path). This is intended to
185
- allow existing git- svn repositories created with one transport
185
+ allow existing ' git svn' repositories created with one transport
186
186
method (e.g. `svn://` or `http://` for anonymous read) to be
187
187
reused if a user is later given access to an alternate transport
188
188
method (e.g. `svn+ssh://` or `https://`) for commit.
@@ -258,18 +258,18 @@ NOTE: SVN itself only stores times in UTC and nothing else. The regular svn
258
258
client converts the UTC time to the local time (or based on the TZ=
259
259
environment). This command has the same behaviour.
260
260
+
261
- Any other arguments are passed directly to 'git- log'
261
+ Any other arguments are passed directly to 'git log'
262
262
263
263
'blame'::
264
264
Show what revision and author last modified each line of a file. The
265
265
output of this mode is format-compatible with the output of
266
266
`svn blame' by default. Like the SVN blame command,
267
267
local uncommitted changes in the working copy are ignored;
268
268
the version of the file in the HEAD revision is annotated. Unknown
269
- arguments are passed directly to 'git- blame'.
269
+ arguments are passed directly to 'git blame'.
270
270
+
271
271
--git-format;;
272
- Produce output in the same format as 'git- blame', but with
272
+ Produce output in the same format as 'git blame', but with
273
273
SVN revision numbers instead of git commit hashes. In this mode,
274
274
changes that haven't been committed to SVN (including local
275
275
working-copy edits) are shown as revision 0.
@@ -288,7 +288,7 @@ Any other arguments are passed directly to 'git-log'
288
288
absolutely no attempts to do patching when committing to SVN, it
289
289
simply overwrites files with those specified in the tree or
290
290
commit. All merging is assumed to have taken place
291
- independently of 'git- svn' functions.
291
+ independently of 'git svn' functions.
292
292
293
293
'create-ignore'::
294
294
Recursively finds the svn:ignore property on directories and
@@ -303,12 +303,12 @@ Any other arguments are passed directly to 'git-log'
303
303
304
304
'commit-diff'::
305
305
Commits the diff of two tree-ish arguments from the
306
- command-line. This command does not rely on being inside an `git- svn
306
+ command-line. This command does not rely on being inside an `git svn
307
307
init`-ed repository. This command takes three arguments, (a) the
308
308
original tree to diff against, (b) the new tree result, (c) the
309
309
URL of the target Subversion repository. The final argument
310
- (URL) may be omitted if you are working from a 'git- svn'-aware
311
- repository (that has been `init`-ed with 'git- svn').
310
+ (URL) may be omitted if you are working from a 'git svn'-aware
311
+ repository (that has been `init`-ed with 'git svn').
312
312
The -r<revision> option is required for this.
313
313
314
314
'info'::
@@ -342,7 +342,7 @@ Any other arguments are passed directly to 'git-log'
342
342
way to repair the repo is to use 'reset'.
343
343
344
344
Only the rev_map and refs/remotes/git-svn are changed. Follow 'reset'
345
- with a 'fetch' and then 'git- reset' or 'git- rebase' to move local
345
+ with a 'fetch' and then 'git reset' or 'git rebase' to move local
346
346
branches onto the new tree.
347
347
348
348
-r/--revision=<n>;;
@@ -373,8 +373,8 @@ git svn fetch
373
373
r2---r3---A---B master
374
374
------------
375
375
376
- Then fixup "master" with 'git- rebase'.
377
- Do NOT use 'git- merge' or your history will not be compatible with a
376
+ Then fixup "master" with 'git rebase'.
377
+ Do NOT use 'git merge' or your history will not be compatible with a
378
378
future 'dcommit'!
379
379
380
380
[verse]
@@ -396,7 +396,7 @@ OPTIONS
396
396
--shared[={false|true|umask|group|all|world|everybody}]::
397
397
--template=<template_directory>::
398
398
Only used with the 'init' command.
399
- These are passed directly to 'git- init'.
399
+ These are passed directly to 'git init'.
400
400
401
401
-r <ARG>::
402
402
--revision <ARG>::
@@ -418,7 +418,7 @@ Only used with the 'set-tree' command.
418
418
419
419
Read a list of commits from stdin and commit them in reverse
420
420
order. Only the leading sha1 is read from each line, so
421
- 'git- rev-list --pretty=oneline' output can be used.
421
+ 'git rev-list --pretty=oneline' output can be used.
422
422
423
423
--rmdir::
424
424
@@ -448,7 +448,7 @@ config key: svn.edit
448
448
449
449
Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
450
450
451
- They are both passed directly to 'git- diff-tree'; see
451
+ They are both passed directly to 'git diff-tree'; see
452
452
linkgit:git-diff-tree[1] for more information.
453
453
454
454
[verse]
@@ -458,16 +458,16 @@ config key: svn.findcopiesharder
458
458
-A<filename>::
459
459
--authors-file=<filename>::
460
460
461
- Syntax is compatible with the file used by 'git- cvsimport':
461
+ Syntax is compatible with the file used by 'git cvsimport':
462
462
463
463
------------------------------------------------------------------------
464
464
loginname = Joe User <
[email protected] >
465
465
------------------------------------------------------------------------
466
466
467
- If this option is specified and 'git- svn' encounters an SVN
468
- committer name that does not exist in the authors-file, 'git- svn'
467
+ If this option is specified and 'git svn' encounters an SVN
468
+ committer name that does not exist in the authors-file, 'git svn'
469
469
will abort operation. The user will then have to add the
470
- appropriate entry. Re-running the previous 'git- svn' command
470
+ appropriate entry. Re-running the previous 'git svn' command
471
471
after the authors-file is modified should continue operation.
472
472
473
473
config key: svn.authorsfile
@@ -482,7 +482,7 @@ the authors file.
482
482
483
483
-q::
484
484
--quiet::
485
- Make 'git- svn' less verbose. Specify a second time to make it
485
+ Make 'git svn' less verbose. Specify a second time to make it
486
486
even less verbose.
487
487
488
488
--repack[=<n>]::
@@ -495,7 +495,7 @@ with many revisions.
495
495
to fetch before repacking. This defaults to repacking every
496
496
1000 commits fetched if no argument is specified.
497
497
498
- --repack-flags are passed directly to 'git- repack'.
498
+ --repack-flags are passed directly to 'git repack'.
499
499
500
500
[verse]
501
501
config key: svn.repack
@@ -508,8 +508,8 @@ config key: svn.repackflags
508
508
509
509
These are only used with the 'dcommit' and 'rebase' commands.
510
510
511
- Passed directly to 'git- rebase' when using 'dcommit' if a
512
- 'git- reset' cannot be used (see 'dcommit').
511
+ Passed directly to 'git rebase' when using 'dcommit' if a
512
+ 'git reset' cannot be used (see 'dcommit').
513
513
514
514
-n::
515
515
--dry-run::
@@ -566,18 +566,18 @@ svn-remote.<name>.noMetadata::
566
566
567
567
This gets rid of the 'git-svn-id:' lines at the end of every commit.
568
568
569
- If you lose your .git/svn/git-svn/.rev_db file, 'git- svn' will not
569
+ If you lose your .git/svn/git-svn/.rev_db file, 'git svn' will not
570
570
be able to rebuild it and you won't be able to fetch again,
571
571
either. This is fine for one-shot imports.
572
572
573
- The 'git- svn log' command will not work on repositories using
573
+ The 'git svn log' command will not work on repositories using
574
574
this, either. Using this conflicts with the 'useSvmProps'
575
575
option for (hopefully) obvious reasons.
576
576
577
577
svn.useSvmProps::
578
578
svn-remote.<name>.useSvmProps::
579
579
580
- This allows 'git- svn' to re-map repository URLs and UUIDs from
580
+ This allows 'git svn' to re-map repository URLs and UUIDs from
581
581
mirrors created using SVN::Mirror (or svk) for metadata.
582
582
583
583
If an SVN revision has a property, "svm:headrev", it is likely
@@ -596,7 +596,7 @@ svn-remote.<name>.useSvnsyncprops::
596
596
597
597
svn-remote.<name>.rewriteRoot::
598
598
This allows users to create repositories from alternate
599
- URLs. For example, an administrator could run 'git- svn' on the
599
+ URLs. For example, an administrator could run 'git svn' on the
600
600
server locally (accessing via file://) but wish to distribute
601
601
the repository with a public http:// or svn:// URL in the
602
602
metadata so users of it will see the public URL.
@@ -605,14 +605,14 @@ svn.brokenSymlinkWorkaround::
605
605
This disables potentially expensive checks to workaround broken symlinks
606
606
checked into SVN by broken clients. Set this option to "false" if you
607
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
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
610
"true".
611
611
612
612
--
613
613
614
614
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
615
- options all affect the metadata generated and used by 'git- svn'; they
615
+ options all affect the metadata generated and used by 'git svn'; they
616
616
*must* be set in the configuration file before any history is imported
617
617
and these settings should never be changed once they are set.
618
618
@@ -630,7 +630,7 @@ Tracking and contributing to the trunk of a Subversion-managed project:
630
630
git svn clone http://svn.example.com/project/trunk
631
631
# Enter the newly cloned directory:
632
632
cd trunk
633
- # You should be on master branch, double-check with git- branch
633
+ # You should be on master branch, double-check with ' git branch'
634
634
git branch
635
635
# Do some work and commit locally to git:
636
636
git commit ...
@@ -661,12 +661,12 @@ Tracking and contributing to an entire Subversion-managed project
661
661
# of dcommit/rebase/show-ignore should be the same as above.
662
662
------------------------------------------------------------------------
663
663
664
- The initial 'git- svn clone' can be quite time-consuming
664
+ The initial 'git svn clone' can be quite time-consuming
665
665
(especially for large Subversion repositories). If multiple
666
666
people (or one person with multiple machines) want to use
667
- 'git- svn' to interact with the same Subversion repository, you can
668
- do the initial 'git- svn clone' to a repository on a server and
669
- have each person clone that repository with 'git- clone':
667
+ 'git svn' to interact with the same Subversion repository, you can
668
+ do the initial 'git svn clone' to a repository on a server and
669
+ have each person clone that repository with 'git clone':
670
670
671
671
------------------------------------------------------------------------
672
672
# Do the initial import on a server
@@ -680,7 +680,7 @@ have each person clone that repository with 'git-clone':
680
680
git fetch
681
681
# Create a local branch from one of the branches just fetched
682
682
git checkout -b master FETCH_HEAD
683
- # Initialize git- svn locally (be sure to use the same URL and -T/-b/-t options as were used on server)
683
+ # Initialize ' git svn' locally (be sure to use the same URL and -T/-b/-t options as were used on server)
684
684
git svn init http://svn.example.com/project
685
685
# Pull the latest changes from Subversion
686
686
git svn rebase
@@ -689,7 +689,7 @@ have each person clone that repository with 'git-clone':
689
689
REBASE VS. PULL/MERGE
690
690
---------------------
691
691
692
- Originally, 'git- svn' recommended that the 'remotes/git-svn' branch be
692
+ Originally, 'git svn' recommended that the 'remotes/git-svn' branch be
693
693
pulled or merged from. This is because the author favored
694
694
`git svn set-tree B` to commit a single head rather than the
695
695
`git svn set-tree A..B` notation to commit multiple commits.
@@ -704,7 +704,7 @@ previous commits in SVN.
704
704
DESIGN PHILOSOPHY
705
705
-----------------
706
706
Merge tracking in Subversion is lacking and doing branched development
707
- with Subversion can be cumbersome as a result. While 'git- svn' can track
707
+ with Subversion can be cumbersome as a result. While 'git svn' can track
708
708
copy history (including branches and tags) for repositories adopting a
709
709
standard layout, it cannot yet represent merge history that happened
710
710
inside git back upstream to SVN users. Therefore it is advised that
@@ -715,25 +715,25 @@ CAVEATS
715
715
-------
716
716
717
717
For the sake of simplicity and interoperating with a less-capable system
718
- (SVN), it is recommended that all 'git- svn' users clone, fetch and dcommit
719
- directly from the SVN server, and avoid all 'git- clone'/'pull'/'merge'/'push'
718
+ (SVN), it is recommended that all 'git svn' users clone, fetch and dcommit
719
+ directly from the SVN server, and avoid all 'git clone'/'pull'/'merge'/'push'
720
720
operations between git repositories and branches. The recommended
721
721
method of exchanging code between git branches and users is
722
- 'git- format-patch' and 'git- am', or just 'dcommit'ing to the SVN repository.
722
+ 'git format-patch' and 'git am', or just 'dcommit'ing to the SVN repository.
723
723
724
- Running 'git- merge' or 'git- pull' is NOT recommended on a branch you
724
+ Running 'git merge' or 'git pull' is NOT recommended on a branch you
725
725
plan to 'dcommit' from. Subversion does not represent merges in any
726
726
reasonable or useful fashion; so users using Subversion cannot see any
727
727
merges you've made. Furthermore, if you merge or pull from a git branch
728
728
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
729
729
branch.
730
730
731
- 'git- clone' does not clone branches under the refs/remotes/ hierarchy or
732
- any 'git- svn' metadata, or config. So repositories created and managed with
733
- using 'git- svn' should use 'rsync' for cloning, if cloning is to be done
731
+ 'git clone' does not clone branches under the refs/remotes/ hierarchy or
732
+ any 'git svn' metadata, or config. So repositories created and managed with
733
+ using 'git svn' should use 'rsync' for cloning, if cloning is to be done
734
734
at all.
735
735
736
- Since 'dcommit' uses rebase internally, any git branches you 'git- push' to
736
+ Since 'dcommit' uses rebase internally, any git branches you 'git push' to
737
737
before 'dcommit' on will require forcing an overwrite of the existing ref
738
738
on the remote repository. This is generally considered bad practice,
739
739
see the linkgit:git-push[1] documentation for details.
@@ -743,7 +743,7 @@ already dcommitted. It is considered bad practice to --amend commits
743
743
you've already pushed to a remote repository for other users, and
744
744
dcommit with SVN is analogous to that.
745
745
746
- When using multiple --branches or --tags, 'git- svn' does not automatically
746
+ When using multiple --branches or --tags, 'git svn' does not automatically
747
747
handle name collisions (for example, if two branches from different paths have
748
748
the same name, or if a branch and a tag have the same name). In these cases,
749
749
use 'init' to set up your git repository then, before your first 'fetch', edit
@@ -769,7 +769,7 @@ for git to detect them.
769
769
CONFIGURATION
770
770
-------------
771
771
772
- 'git- svn' stores [svn-remote] configuration information in the
772
+ 'git svn' stores [svn-remote] configuration information in the
773
773
repository .git/config file. It is similar the core git
774
774
[remote] sections except 'fetch' keys do not accept glob
775
775
arguments; but they are instead handled by the 'branches'
@@ -790,7 +790,7 @@ Keep in mind that the '\*' (asterisk) wildcard of the local ref
790
790
however the remote wildcard may be anywhere as long as it's an
791
791
independent path component (surrounded by '/' or EOL). This
792
792
type of configuration is not automatically created by 'init' and
793
- should be manually entered with a text-editor or using 'git- config'.
793
+ should be manually entered with a text-editor or using 'git config'.
794
794
795
795
SEE ALSO
796
796
--------
0 commit comments