假设我有一个名为XYZProject的svn repo,它有一个主干,它是我的开发基本代码,有3个分支VF1,VF2& VF3及其布局如下所示:
XYZProject
..trunk
..VF1
..trunk_vf1
..VF2
..src
..doc
..VF3
..doc_vf3,
..trunk_vf3
..src_vf3
使用git-svn工具和命令是:
git svn clone -r623:HEAD http://svnURL/XYZProject --username barodia -T trunk -b VF1 -b VF2 -b VF3 --authors-file=authors.txt --no-minimize-url
它创建了VF1,VF2和VF3中存在的子文件夹的分支,如下所示:
$ git branch -a
*master
trunk
trunk_vf1
src
doc
doc_vf3
trunk_vf3
src_vf3
这意味着在svn clone期间它会在我的本地创建路径,如下所示:
origin/trunk
origin/trunk_vf1
origin/src
origin/doc
origin/doc_vf3
origin/trunk_vf3
origin/src_vf3
但我希望VF1,VF2,VF3的分支如下所示:
$ git branch -a
*master
trunk
VF1
VF2
VF3
任何帮助都会很棒。提前谢谢!
答案 0 :(得分:0)
我自己没有使用它,但这可能是其他非标准布局的替代方案: https://github.com/nirvdrum/svn2git
使用情况页面显示了支持的布局样式列表。
修改强> 这可能适合你:
require
这个想法是不将root作为trunk,而是作为branch dir。
请参阅svn2git Options Reference并考虑添加svn2git http://svnURL/XYZProject --revision 623 --username abc --notrunk --notags --branches http://svnURL/XYZProject --authors authors.txt --branches --no-minimize-url
以进行详细日志记录以帮助调试。