我正在将一个项目从SVN迁移到git (完全不需要git SVN的SVN互操作功能),并且我尝试过同时使用git svn和svn2git (nirvdrum's fork on github),我遇到的一个问题是我们在SVN中的存储库布局是这样的:
example.com/website/trunk|branches|tags/base/code,
因此,当我将其导入git时,存储库的根目录包含一个目录,base (不是真实名称),然后是所有内容。这对我们来说是一个问题,因为它增加了一些复杂性。
有没有一种好的简单的方法可以将存储库的根目录更改为base,无论是在导入过程中还是使用git的mad历史更改功能进行追溯?否则,在git中,不应该是存储库根目录并包含其他不相关代码的目录必须是存储库的根目录,这很奇怪,由于某种原因,在SVN中情况并非如此(即存储库的根目录是base,而父目录没有任何svn内容)。
希望这是一个很快的问题,有人可以很容易地回答。
哦,顺便说一下,我确实有一些想要导入的分支和标记,但同样,这些应该根在base,而不是base的父目录。如果它们不能像那样导入,那也没什么大不了的,因为它们几乎毫无用处,团队以前也不太热衷于使用SVN,但如果有它们就太好了。
发布于 2009-08-26 00:07:39
svn2git也有这样的选项;使用Charles的答案中的示例,它将是:
svn2git --trunk example.com/website/trunk/base/code \
--tags example.com/website/tags/base/code \
--branches example.com/website/branches/base/code注意:我还没有尝试过这样做,但据我所知,svn2git只是将这些转换为git-svn的-T|t|b选项。
发布于 2009-08-18 08:43:08
您应该能够执行以下操作:
git svn init -Texample.com/website/trunk/base/code -texample.com/website/tags/base/code -bexample.com/website/branches/base/code而不是接受默认值或使用-s|--stdlayout。
https://stackoverflow.com/questions/1292531
复制相似问题