恢复git-svn克隆

时间:2010-04-20 16:35:21

标签: git git-svn

我开始使用git-svn的克隆操作克隆SVN存储库。导入大约6个小时后(这是一个很大的回购),我的电脑就睡着了。有没有办法在不重做所有初始工作的情况下恢复操作?

4 个答案:

答案 0 :(得分:146)

恢复git svn fetch的{​​{1}}命令由多个来源确认:

  

(顺便说一下,如果在初始克隆步骤中你的连接中断或你需要停止它然后恢复克隆你只需要运行上面的命令继续下载历史记录。)

  

git svn clone中似乎存在内存泄漏。 git-svn进程的大小增长缓慢,大约两周后,它的驻留大小为1.2 GB,此时操作系统拒绝让它进行分叉。
  事实上,这是一种伪装的祝福   我能够通过一个简单的“git-svn”恢复被中断的克隆,并且它在现在极小的堆中运行得更快。
  事实上,这很有效,我养成了每天晚上和每天早上都打断并重新启动过程的习惯。几天后,它就完成了。

  

通过克隆现有的Subversion存储库,您可以使用git svn fetch开始冒险:

git-svn
  

git svn clone url://path/to/repo -s 标志假定您的存储库使用“trunk,branches,tags”约定。如果没有,你必须手动指定哪些目录代表分支和标签,如果你想让Git知道它们。

     

这将需要很长时间,因为它将从SVN获取每个修订并在本地提交。如果因任何原因停止,您可以使用-s继续。

答案 1 :(得分:15)

我发现a blog post提供了(我希望)正确答案的内容。

显然,运行git svn fetch可以有效地完成克隆操作。这是希望!

答案 2 :(得分:5)

作为VonC,CaptainAwesomePants和Archi都表示git svn fetch可以解决问题。我正在做git svn clone url... --authors-file=path/to/file并且克隆失败,因为其中一位作者不在作者文件中。我将作者添加到文件中并运行git svn fetch,它从它停止的地方继续并稍后查看git日志,似乎它使用新添加的作者来替换提交作者的名称,所以一切都很好。

答案 3 :(得分:4)

至少从git 2.1.0开始,只需重新发布git svn clone

即可恢复

然而,这将复制.git / config中的一些条目删除那些,一切都会没问题