我正在尝试对一个非常大的 SVN 存储库进行 git svn 克隆。我已经使用git svn clone
完整的分支、标签和维护的历史记录完成了早期的迁移,一切进展顺利。但这一次脚本运行一段时间后抛出错误:
libsvn: Out of memory - terminating application.18 [main] perl 13884 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
我到处研究但找不到与此相关的任何内容。如果有人遇到类似的错误,我将不胜感激任何建议。
git-svn
不是用于一次性转换存储库的正确工具。如果您想使用 Git 作为现有 SVN 服务器的前端,那么它是一个很棒的工具,但对于一次性转换,您不应该使用,git-svn
但svn2git
它更适合这种用例,并且不会出现 OOM 错误。
有很多名为 的工具,最好的可能是来自https://github.com/svn-all-fast-export/svn2gitsvn2git
的 KDE 工具。我强烈建议使用该工具。这是我所知道的最好的,并且它的规则文件非常灵活。svn2git
如果您不是 100% 了解存储库的历史记录,svneverever
http ://blog.hartwork.org/?p =763 是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查其历史记录。
尽管git-svn
(或者在您的情况下是错误的svn2git
)更容易开始,但除了它的灵活性之外,以下是使用 KDEsvn2git
而不是更优越的一些进一步原因:git-svn
svn2git
(如果使用了正确的历史记录),对于具有分支和合并等的更复杂的历史记录尤其如此git-svn
一个额外的空提交,这也使得它们不属于分支的一部分,因此在您向命令fetch
提供之前,普通不会获取它们,因为默认情况下,也只获取指向所获取分支的标签。--tags
有了正确的 svn2git 标签,它们就在它们所属的地方svn2git
,git-svn
最终您将丢失历史记录svn2git
可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库svn2git
使用正确的转换比使用正确的转换快数亿倍git-svn
有很多原因可以解释为何git-svn
KDE 更差而 KDEsvn2git
更优越。:-)
归档时间: |
|
查看次数: |
3306 次 |
最近记录: |