我想使用git-svn检查Boost库,我只想从版本1.35开始检出主干和标签,即标签/发布/ Boost_1_35及以上。我的配置如下所示:
[svn-remote "svn"]
ignore-paths = ^tags/release/(?i:(?!boost)|[^/]*(?:beta|rc)|boost_(?:0|1_[1-2]|1_3[0-4]))[^/]*/
url = https://svn.boost.org/svn/boost
fetch = trunk:refs/remotes/svn/trunk
tags = tags/release/*:refs/remotes/svn/tags/*
但是,git fetch仍会获取大量不相关的标签,例如svn / tags / version_0-9-10或svn / tags / version_0-9-10 @ 44215。我想知道指定ignore-paths以实现这种效果的正确方法是什么。
顺便说一句:我读过How do I fetch/clone only a few branches using git-svn?但听起来不是一个可扩展的解决方案。
答案 0 :(得分:0)
我已经设法为某些分支机构这样做,但由于svn中的标签实际上是分支,它应该是相同的:
在使用“-t tags和-b branches”的git svn init之后,我编辑了.git / config为:
[svn-remote "svn"]
... url, fetch and stuff ...
branches = branches/rel-2.1/*:refs/remotes/svn/branches/rel-2.1/*
branches = branches/rel-2.2/*:refs/remotes/svn/branches/rel-2.2/*
branches = branches/rel-2.3/*:refs/remotes/svn/branches/rel-2.3/*
branches = branches/rel-2.4/*:refs/remotes/svn/branches/rel-2.4/*
branches = branches/rel-2.5/*:refs/remotes/svn/branches/rel-2.5/*
我使用一个简单的python代码生成相关的行并将其复制到.git / config:
for x in range(1,6):
print branches = " branches/rel-2.{0}/*:refs/remotes/svn/branches/rel-2.{0}/*".format(x)
不像正则表达式那样可扩展,但这是我能找到的最好的。