设置git-svn以遵循非标准的svn repo

时间:2015-05-11 08:26:16

标签: git svn version-control git-svn

这是我的SVN回购的结构:

  • http://server.net:8080/svn/CompanyName - svn root
  • http://server.net:8080/svn/CompanyName/ProjectBranch3 - 项目的当前分支
  • http://server.net:8080/svn/CompanyName/ProjectBranch2 - 项目的前一个分支
  • http://server.net:8080/svn/CompanyName/ProjectBranch1 - 项目的第一个分支
  • http://server.net:8080/svn/CompanyName/SomeRandomProject - 同一个根目录中我不想查看的另一个项目。有很多
  • http://server.net:8080/svn/CompanyName/Tags/ProjectName/ - 项目标签

项目最初开发为ProjectBranch1,最后复制到ProjectBranch2ProjectBranch3。我想用它的所有历史来获取项目,我希望git能够理解每个分支都是从前一个分支开始的。

现在,git init命令有一个-b选项来指定用于分支的子文件夹。但是,svn分支不包含在子文件夹中;如上所述,它们作为单独的子目录位于根目录中。

如何配置git-svn来实现此目标?

1 个答案:

答案 0 :(得分:1)

我能够使用以下.git/config文件执行此操作:

[svn-remote "svn"]
    url = http://server.net:8080/svn/CompanyName
    fetch = ProjectBranch3:refs/remotes/origin/trunk
    branches = {ProjectBranch1, ProjectBranch2}:refs/remotes/origin/bracnhes/*