几天来,我一直在努力将一个大型SVN回购协议迁移到Git。它包含大约25000个提交,包括一些错误的历史记录(由于错误的分支尝试而移动大量文件),非标准布局(没有主干文件夹,实际上不是分支的分支,因此我将它们视为主干的一部分,没有标记…)
我从Atlassian教程开始(https://www.atlassian.com/git/tutorials/migrating-overview)
所以基本上我现在要做的是把svn迁移到我自己的计算机上的git repo。稍后我会把它推到中央回购。
Git版本是2.7.2。
我用svn2git(基于ruby)直接或间接地尝试了git svn。
我尝试过多种方法,但迟早会得到:
couldn't truncate file at /mingw64/share/perl5/site_perl/Git.pm line 1393.
或
0 [main] perl 12640 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
欢迎任何意见…:)
谢谢!
最佳答案
最后看来,我成功地完成了整个过程,回购看起来很不错。我所做的以及对发现这篇文章的人有什么帮助-我将git降级到1.9.5,并在mingw 32位中执行了所有操作(显然我下载的1.9.5是32位的,git bash是同一个版本)。网上有些人建议回到1.8.3(如果1.9.5的尝试失败,那是我计划的下一步)
以前失败的:
-Git 2.7.2,带有常规Windows CMD(同时作为管理员)或mingW64
-git2svn(它实际上使用常规git svn命令,但如果您使用非标准repo布局,它会非常酷)
祝你好运——但请记住——将SVN迁移到Git会对大型回购产生负面影响;)