使用 git-svn 把我本地的 git 当作 svn 客户端使用还是挺漂亮的。
不幸的是,似乎无法将 git svn 限制在某些分支上?
得到了
glob 中需要一个 '*':'branches/v10'
在带有固定分支路径的 gitconfig 中设置两个 分支
行时
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 Remote 的情况下绕过(这会导致索引爆炸,因为分支点不仅仅是来自主干的“补丁/副本”,所有“主干”历史记录都会再次出现;(
编辑: 阐明我的意图: 有一个巨大的 SVN 仓库,有 n 个分支。在 SVN 中,我将只检查我需要工作的两个不同工作区中的两个分支。 在 Git 中,DVCS 方面将“克隆”整个 SVN 存储库,包括所有 SVN 分支的所有信息(考虑一个具有 > 50.000 个变更集的存储库)。 我打算在我的本地机器上尽可能少地使用磁盘。 因此我想到,只为我需要的两个特定分支(v10 和 v09)设置 git。所以我在这个 git 存储库中仍然拥有强大的 merge 功能,但不需要克隆所有我不需要(而且永远不需要)的东西。 除了“光盘使用”之外的另一个方面是问题,克隆完整的 SVN 存储库需要非常非常...(我说过很)长!
最佳答案
这个问题的解决方案在手册中。在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/*
关于git - 限制 git svn 到分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4966876/