使用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存储库需要非常非常......(我说的很长)!
答案 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/*