我已使用svn2git将大型 svn 存储库迁移到 git 。现在我有以下情况:
图片来自我的 GitLab 概览。可以看到,使用 svn 创建的分支并没有连接到红色的 master 分支。是否可以将初始绿色提交“重新连接”到主分支?正因为如此,每个分支都在 master 后面大约 5k 次提交,我想解决这个问题。
谢谢!
我已使用svn2git将大型 svn 存储库迁移到 git 。现在我有以下情况:
图片来自我的 GitLab 概览。可以看到,使用 svn 创建的分支并没有连接到红色的 master 分支。是否可以将初始绿色提交“重新连接”到主分支?正因为如此,每个分支都在 master 后面大约 5k 次提交,我想解决这个问题。
谢谢!
git-svn不是一次性转换存储库或存储库部分的正确工具。如果您想使用 Git 作为现有 SVN 服务器的前端,这是一个很棒的工具,但对于一次性转换,您不应该使用,git-svn但svn2git它更适合这个用例。
您使用的svn2git实用程序基于git-svn并因此具有大多数相同的缺点。
有很多称为svn2git的工具,可能最好的是来自https://github.com/svn-all-fast-export/svn2git的 KDE 工具。我强烈建议使用该svn2git工具。这是我所知道的最好的,并且在你可以用它的规则文件做什么方面非常灵活。
您将能够轻松配置svn2gits 规则文件以产生您想要的结果,而且速度快了无数倍。
如果您不是 100% 了解存储库的历史,那么在将 SVN 存储库迁移到 Git 时,svnevereverhttp ://blog.hartwork.org/ ?p=763是一个很好的工具来调查 SVN 存储库的历史。
尽管git-svn更容易开始,但除了灵活性之外,还有一些使用 KDEsvn2git而不是更优越的原因:git-svn
svn2git对于具有分支和合并等的更复杂的历史尤其如此git-svn一个额外的空提交,这也使它们不是分支的一部分,所以在fetch你给命令之前正常不会得到它们,--tags因为默认情况下只有指向已获取分支的标签也会被获取。使用正确的 svn2git 标签是它们所属的地方svn2git,git-svn最终您将失去历史svn2git将一个 SVN 存储库拆分为多个 Git 存储库svn2git正确的转换比使用正确的要快无数倍git-svn你看,有很多原因导致git-svnKDE 更差而 KDEsvn2git更胜一筹。:-)