我正在将一个项目从SVN移动到git(完全,所以不需要git svn的SVN互操作功能),我尝试使用git svn
和svn2git
(nirvdrum's fork on github )我遇到的一个问题是我们在SVN中的存储库布局是这样的:
example.com/website/trunk|branches|tags/base/code
,
所以当我将它导入git时,存储库的根目录包含一个目录,base(不是真实姓名),然后是所有东西。这对我们来说是一个问题,因为它增加了一些复杂性。
是否有一种简单易用的方法可以将存储库的根目录更改为基础,无论是在导入过程中还是追溯到git的疯狂历史变化权力?否则,一个不应该是存储库的根目录并包含其他无关代码的目录必须是git中存储库的根目录,这很奇怪,并且出于某种原因,对于SVN,情况并非如此(即存储库的根目录是基础,父目录没有任何svn东西。
希望这是一个容易回答的快速问题。
哦,顺便说一句,我确实有一些我想要导入的分支和标签,但是这些应该根据base而不是base的父目录。如果这些都不可能像那样进口,那就不是一件大事了,因为它们几乎没用,团队之前有点半心半意地使用SVN,但是拥有它们会很好。
答案 0 :(得分:1)
你应该可以这样做:
git svn init -Texample.com/website/trunk/base/code -texample.com/website/tags/base/code -bexample.com/website/branches/base/code
而不是接受默认值或使用-s|--stdlayout
。
答案 1 :(得分:1)
svn2git
也可以选择;使用查尔斯回答的例子:
svn2git --trunk example.com/website/trunk/base/code \
--tags example.com/website/tags/base/code \
--branches example.com/website/branches/base/code
[警告:我没有尝试过这个,但据我所知,svn2git
只是将这些转换为-T|t|b
的{{1}}选项。]