情况就是这样:我们有一个巨大的svn存储库,它是“主人”(不能改变它,因为它实际上是由另一家公司“拥有”)。我们宁愿在git本地工作,以获得git提供的分支灵活性和速度。但我们不想克隆整个存储库。
存储库结构看起来大致如下:
/trunk/project1/*
/project2/*
/branches/branch/project1/*
/project2/*
/tags/tag1/tag1a/project1/*
/tag1b/project1/*
/tag2/tag2a/project2/*
我只对project1感兴趣,但我想同时拥有主干和分支(标签不是那么重要,但获得它们也会很好)。
我可以使用这些svn-remote设置克隆一个分支:
[svn-remote "svn"]
url = https://svn.company.com/svn/branches/branch1/project1
但我真的想要获得分支结构。我考虑过使用ignore-paths:
[svn-remote "svn"]
ignore-paths=^project2|^project3|...
但是每次添加新的顶级“项目”目录时我都必须更新忽略路径,这是不可持续的。
其次,我们确实只需要/ tags / tag1中的标签(如果我们需要标签)。任何关于如何做到这一点的想法将不胜感激。
答案 0 :(得分:6)
我认为.git / config文件中的以下内容应该有效:
[svn-remote "svn"]
url = https://svn.company.com/svn
trunk = trunk/project1:refs/remotes/svn/trunk
tags = tags/*/project1:refs/remotes/svn/tags/*
branches = branches/*/project1:refs/remotes/svn/branches/*