git-svn: allow subset of branches/tags to be specified in glob spec

For very large projects it is useful to be able to clone a subset of the
upstream SVN repo's branches. Allow for this by letting the left-side of
the branches and tags glob specs contain a brace-delineated comma-separated
list of names. e.g.:

	branches = branches/{red,green}/src:refs/remotes/branches/*

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Jay Soffian
2010-01-23 03:30:01 -05:00
committed by Eric Wong
parent 3e18ce1ac3
commit 075762085c
4 changed files with 320 additions and 20 deletions

View File

@ -838,6 +838,22 @@ independent path component (surrounded by '/' or EOL). This
type of configuration is not automatically created by 'init' and
should be manually entered with a text-editor or using 'git config'.
It is also possible to fetch a subset of branches or tags by using a
comma-separated list of names within braces. For example:
------------------------------------------------------------------------
[svn-remote "huge-project"]
url = http://server.org/svn
fetch = trunk/src:refs/remotes/trunk
branches = branches/{red,green}/src:refs/remotes/branches/*
tags = tags/{1.0,2.0}/src:refs/remotes/tags/*
------------------------------------------------------------------------
Note that git-svn keeps track of the highest revision in which a branch
or tag has appeared. If the subset of branches or tags is changed after
fetching, then .git/svn/.metadata must be manually edited to remove (or
reset) branches-maxRev and/or tags-maxRev as appropriate.
SEE ALSO
--------
linkgit:git-rebase[1]