使用 "git svn clone" 从 sourceforge 克隆一个大型 svn 存储库

Cloning a large svn repository from sourceforge with "git svn clone"

我正在尝试使用 git svn clone 从 sourceforge 克隆一个 large subversion repository。克隆过程周期性地卡住:SF 只是停止发送数据。最终它会超时,但需要 永远 。这之后就是一个循环:

查看 git svn 手册页,似乎没有明显的方法可以为 i/o 操作设置超时。

有什么方法可以使这个过程更有效率吗?

您可以使用 -r

在您看到它能够很好地拉取(或者说,在此之前的 100 个修订)的修订处恢复该过程
git svn fetch -r some-revision:HEAD

这样你就不会从头开始。

让我给你一些加快速度的建议。我刚刚 运行 自己完成了它们,所以我确信它们可以工作。主要技巧是将 Subversion 存储库复制到本地文件系统,然后 运行 git svn.

首先,SourceForge allows to backup repositories using rsync(请参阅最底部的最后一个命令)。所以从

开始
rsync -ahPv svn.code.sf.net::p/vice-emu/code vice-emu.svn

rsync 访问权限不可用的一般情况下,您可以使用 svnrdump 转储存储库:

svnrdump dump --non-interactive https://svn.code.sf.net/p/vice-emu/code > vice-emu.svndump

然后将转储加载到本地存储库:

svnadmin create vice-emu.svn
svnadmin load vice-emu.svn < vice-emu.svndump

无论哪种方式,您都可以在本地存储库上使用 git svn

git svn clone file://`pwd`/vice-emu.svn vice-emu

最后还有一个技巧:offload the import to Github

我的结果是:https://github.com/phdru/vice-emu-ghi (Github Importer) and https://github.com/phdru/vice-emu-gitsvnrsync + git svn + 后处理)。

PS。如果您要分叉我的一个或两个结果,请稍后 ping 我,我将删除我的临时存储库。否则我会尽快删除。