2011-02-11 82 views
5

使用git-svn将我的本地git用作svn客户机非常漂亮。将git svn限制在分支机构

不幸的是,似乎不可能将git svn限制在某些分支上?

在gitconfig 2条branches线固定分支路径

url = https://example.com/svn/reps/test 
fetch = trunk:refs/remotes/trunk 
branches = branches/v10:refs/remotes/v10 
branches = branches/v09:refs/remotes/v09 

有没有办法让周围没有使用不同的SVN遥控器(这将导致建立时得到 One '*' is needed in glob: 'branches/v10'

,指数将炸毁导致分支点不仅仅是来自中继线的“补丁/副本”,并且所有的“中继线”历史将再次进入;(


编辑: 要clearify本来我是打算: 有一个巨大的SVN仓库与N个分支。在SVN中,我将在两个需要工作的不同工作区中检出两个分支。 在Git中,DVCS方面将“克隆”整个SVN存储库,包括所有SVN分支的所有信息(考虑具有> 50.000变更集的存储库)。 我打算在本地机器上尽可能地减少磁盘使用量。 因此我想过,为我需要的两个特定分支(v10和v09)设置git。所以我仍然在这个git仓库中拥有很棒的合并功能,但不需要克隆所有我不需要的东西(并且永远不需要)。 “光盘使用”的另一个方面是问题,克隆整个SVN存储库需要非常,非常......(我说得很)!


回答

11

解决方法在手册中。在svn manpage结束时,发现以下评论:

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/*