@@ -3,7 +3,7 @@ git-svn(1)
3
3
4
4
NAME
5
5
----
6
- git-svn - Bidirectional operation between a single Subversion branch and git
6
+ git-svn - Bidirectional operation between a Subversion repository and git
7
7
8
8
SYNOPSIS
9
9
--------
@@ -15,13 +15,12 @@ DESCRIPTION
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 single Subversion branch simply by using a
19
- URL to the branch, follow branches laid out in the Subversion recommended
20
- method (trunk, branches, tags directories) with the --stdlayout option, or
21
- follow branches in any layout with the -T/-t/-b options (see options to
22
- 'init' below, and also the 'clone' command).
18
+ 'git-svn' can track a standard Subversion repository,
19
+ following the common "trunk/branches/tags" layout, with the --stdlayout option.
20
+ It can also follow branches and tags in any layout with the -T/-t/-b options
21
+ (see options to 'init' below, and also the 'clone' command).
23
22
24
- Once tracking a Subversion branch (with any of the above methods), the git
23
+ Once tracking a Subversion repository (with any of the above methods), the git
25
24
repository can be updated from Subversion by the 'fetch' command and
26
25
Subversion updated from git by the 'dcommit' command.
27
26
@@ -48,8 +47,11 @@ COMMANDS
48
47
--stdlayout;;
49
48
These are optional command-line options for init. Each of
50
49
these flags can point to a relative repository path
51
- (--tags=project/tags') or a full url
52
- (--tags=https://foo.org/project/tags). The option --stdlayout is
50
+ (--tags=project/tags) or a full url
51
+ (--tags=https://foo.org/project/tags).
52
+ You can specify more than one --tags and/or --branches options, in case
53
+ your Subversion repository places tags or branches under multiple paths.
54
+ The option --stdlayout is
53
55
a shorthand way of setting trunk,tags,branches as the relative paths,
54
56
which is the Subversion default. If any of the other options are given
55
57
as well, they take precedence.
@@ -205,6 +207,20 @@ config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)
205
207
Create a tag by using the tags_subdir instead of the branches_subdir
206
208
specified during git svn init.
207
209
210
+ -d;;
211
+ --destination;;
212
+ If more than one --branches (or --tags) option was given to the 'init'
213
+ or 'clone' command, you must provide the location of the branch (or
214
+ tag) you wish to create in the SVN repository. The value of this
215
+ option must match one of the paths specified by a --branches (or
216
+ --tags) option. You can see these paths with the commands
217
+ +
218
+ git config --get-all svn-remote.<name>.branches
219
+ git config --get-all svn-remote.<name>.tags
220
+ +
221
+ where <name> is the name of the SVN repository as specified by the -R option to
222
+ 'init' (or "svn" by default).
223
+
208
224
'tag'::
209
225
Create a tag in the SVN repository. This is a shorthand for
210
226
'branch -t'.
@@ -727,6 +743,16 @@ already dcommitted. It is considered bad practice to --amend commits
727
743
you've already pushed to a remote repository for other users, and
728
744
dcommit with SVN is analogous to that.
729
745
746
+ When using multiple --branches or --tags, 'git-svn' does not automatically
747
+ handle name collisions (for example, if two branches from different paths have
748
+ the same name, or if a branch and a tag have the same name). In these cases,
749
+ use 'init' to set up your git repository then, before your first 'fetch', edit
750
+ the .git/config file so that the branches and tags are associated with
751
+ different name spaces. For example:
752
+
753
+ branches = stable/*:refs/remotes/svn/stable/*
754
+ branches = debug/*:refs/remotes/svn/debug/*
755
+
730
756
BUGS
731
757
----
732
758
0 commit comments