我通过这种方式从svn迁移到git

git svn init https://svn...
git svn fetch

我可以更改迁移的提交,而不是
git中的“commit to svn”是“svn中的修订号-commit to svn”
例如
541-初始模块ABC

最佳答案

对于一次性迁移,git-svn不是用于转换存储库或部分存储库的正确工具。如果您想使用Git作为现有的VPN服务器的前端,这是一个很好的工具,但是对于一次性转换,您不应该使用git-svn,但是svn2git它更适合这个用例。
有很多称为svn2git的工具,最好的可能是https://github.com/svn-all-fast-export/svn2git中的kde工具。我强烈建议使用svn2git工具。这是我所知道的最好的,它可以很灵活地处理它的规则文件。
您将能够很容易地配置svn2git规则文件,以从当前的VPN布局中生成所需的结果,包括可能存在的任何复杂历史。
使用kdesvn2git还可以使用--msg-filter参数修改提交消息,从而在主题行中引入修订id。
如果您不是100%了解存储库的历史,svnevereverfromhttp://blog.hartwork.org/?p=763是一个很好的工具,可以在将svn存储库迁移到git时调查其历史。
即使git-svn(或者使用的svn2git)更容易开始,这里还有一些进一步的理由,为什么使用KDE svn2git而不是git-svn优于它,除了它的灵活性:
通过svn2git(如果使用正确的方法)可以更好、更清晰地重建历史,对于分支和合并等更复杂的历史尤其如此
标记是真正的标记,而不是git中的分支。
使用git-svn时,标记包含一个额外的空提交,这也会使它们不属于分支,因此正常的fetch在您将--tags交给命令之前不会获取它们,因为默认情况下,也只获取指向已获取分支的标记。有了合适的svn2git标签
如果您在svn中更改了布局,您可以使用svn2git轻松配置它,使用git-svn您最终将丢失历史记录
使用svn2git还可以轻松地将一个svn存储库拆分为多个git存储库
或者将同一个svn根目录中的多个svn存储库轻松组合到一个git存储库中
正确的svn2git比正确的git-svn转换快上百万倍。
你看,git-svn更差,kdesvn2git更优的原因有很多。:-)

09-04 01:06