将git svn限制为分支

时间:2011-02-11 08:16:25

标签: git git-svn git-branch

使用git-svn将我的本地git用作svn客户端非常漂亮。

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

得到 One '*' is needed in glob: 'branches/v10'

在gitconfig中使用固定分支路径设置两条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遥控器(这会导致索引爆炸,因为分支点不仅仅是来自主干的“补丁/副本”而且所有“主干”历史都会再次出现;(< / p>


修改 要明确我的意图: 有一个巨大的SVN存储库,有n个分支。在SVN中,我只需要在两个不同的工作区中检查两个分支,我需要工作。 在Git中,DVCS方面将“克隆”整个SVN存储库,包括所有SVN分支的所有信息(考虑具有> 50.000变更集的存储库)。 我打算在本地计算机上尽可能减少磁盘使用量。 因此我想到了,为我需要的两个特定分支设置git(v10和v09)。所以我仍然在这个git存储库中有很好的合并功能,但不需要克隆我不需要的所有东西(而且永远不需要)。 除了“光盘使用”之外的另一个方面是问题,克隆完整的SVN存储库需要非常非常......(我说的很长)!


1 个答案:

答案 0 :(得分:14)

解决方法是在手册中。在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/*