如何通过git-svn使用嵌套分支

时间:2010-10-21 00:15:46

标签: svn git branch git-svn

我们的svn服务器有一个名为Dev的主干,而分支就在

/Branches/Release/1.0/
                 /2.0/
                 /2.3.4/

我用类似git svn clone -T Dev ... -b Branches ...的东西克隆它 当我跑git branch 2.1 remotes/Release/2.1时,我得到:
fatal: Not a valid object name: 'remotes/Release/2.1'.

  • 我如何参考远程分支?
  • 我是否需要使用不同的args重新克隆?

1 个答案:

答案 0 :(得分:11)

如“How do I import svn branches rooted in different directories into git using git-svn?”中所述,您需要在初始导入期间获取所有嵌套分支:

[svn-remote "svn"]
    url = svn://svnserver/repo
    fetch = trunk:refs/remotes/trunk
    branches = branches/*/*:refs/remotes/*
    tags = tags/*:refs/remotes/tags/*

this thread中也有描述 对于更复杂的SVN分支布局(如branches within trunk!),在实现git-svn集成之前,可能首先修改SVN repo。

从Git1.6开始,“1.6.x提供了深度克隆,因此多个通配符可以与--branches选项一起使用”,如“Cloning a Non-Standard Svn Repository with Git-Svn”中所述。

git svn clone https://svn.myrepos.com/myproject web-self-serve --trunk=trunk --branches=branches/*/* --prefix=svn/