我正在尝试使用Ubuntu 16.4机器将我庞大的SVN存储库移动到Git中.为此,我遵循本教程:
https://www.atlassian.com/git/tutorials/svn-to-git-prepping-your-team-migration
我安装了最新的Git,SVN和git-svn工具.
我的问题是,每次我敲响'git svn clone'命令我都会收到此错误'错误:git-svn死于信号11'而没有任何进一步的信息.
在这个论坛中搜索了一下我找到了另一篇文章:
这带我到这个网站寻求解决方案:
http://pwizardry.com/devlog/index.cgi/2010/03/29#svn2git
要求使用'git svn fetch'恢复进程.我这样做了,它似乎工作了,因为这个过程持续了一天.不幸的是,它再次停止了相同的错误,'git svn fetch'似乎没有任何帮助.
我想知道是否有人遇到过这个问题,或者我怎么能找到任何痕迹,因为我得到的只是这个错误而没有任何进一步的解释.
编辑:
所以我继续搜索这个问题,我发现如果使用'valgrind'你可以获得更多的信息,所以我做了,现在'git svn fetch'在另一个点停止了这条消息:
==17006== Warning: invalid file descriptor -1 in syscall close()
==17006==
==17006== HEAP SUMMARY:
==17006== in use at exit: 43,779,830 bytes in 71,103 blocks
==17006== total heap usage: 7,178,701 allocs, 7,107,598 frees, 2,123,468,574 bytes allocated
==17006==
==17006== LEAK SUMMARY:
==17006== definitely lost: 156,556 bytes in 40 blocks
==17006== indirectly lost: 156,338 bytes in 51 blocks
==17006== possibly lost: 43,394,719 bytes in 70,805 blocks
==17006== still reachable: 72,217 bytes in 207 blocks
==17006== of which reachable via heuristic:
==17006== newarray : 53,032 bytes in 1,637 blocks
==17006== suppressed: 0 bytes in 0 blocks
==17006== Rerun with --leak-check=full to see details of leaked memory
==17006==
==17006== For counts of detected and suppressed errors, rerun with: -v
==17006== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
Run Code Online (Sandbox Code Playgroud)
知道这是什么意思吗?
编辑2:
我现在看到运行我正常的'git svn fetch'表示一切都已完成......我不知道'valgrind'的使用是如何影响的,但似乎它有助于完成这项工作.
小智 13
这个问题在libsvn-perl 1.9.4.
git-svn不是用于一次性转换存储库或存储库部分的正确工具。如果您想使用 Git 作为现有 SVN 服务器的前端,那么它是一个很棒的工具,但对于一次性转换,您不应该使用,git-svn但svn2git它更适合此用例。
有很多名为 的工具,最好的可能是来自https://github.com/svn-all-fast-export/svn2gitsvn2git的 KDE 工具。我强烈建议使用该工具。这是我所知道的最好的,并且它的规则文件非常灵活。svn2git
您将能够轻松配置svn2git规则文件以产生您想要的结果。
如果您不是 100% 了解存储库的历史记录,svnevereverhttp ://blog.hartwork.org/?p =763 是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查其历史记录。
尽管git-svn更容易上手,但除了其灵活性之外,还有以下一些进一步的原因说明为什么使用 KDE 更优越svn2git:git-svn
svn2git(如果使用了正确的历史记录),对于具有分支和合并等的更复杂的历史记录尤其如此git-svn一个额外的空提交,这也使得它们不属于分支的一部分,因此在您向命令fetch提供之前,普通不会获取它们,因为默认情况下,也只获取指向所获取分支的标签。--tags有了正确的 svn2git 标签,它们就在它们所属的地方svn2git,git-svn最终您将丢失历史记录svn2git可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库svn2git使用正确的转换比使用正确的转换快数亿倍git-svn你看,有很多原因可以解释为什么 KDEgit-svn更差而 KDEsvn2git更优越。:-)
| 归档时间: |
|
| 查看次数: |
7015 次 |
| 最近记录: |