Git Svn clone 某些修订版,并在未来继续克隆其他修订版

标签 git svn git-svn

我正在将我的 svn 存储库转换为 git。这是一个非常大的 repo 协议(protocol),它一直在失败,因此我只需要克隆它的一部分。我使用了以下命令:

git svn clone -r100000:HEAD https://svn.myserver.com/project/ .

它成功完成,但我只有最近的几个提交。无论如何要继续克隆早期的提交?

P.S:在没有 -r 的情况下克隆整个 repo 总是导致 RA layer request failed: REPORT request failed on 'svn/project/!svn/vcc/default': ... could not read chunk size: Secure connection truncated 。 .. 有时,几天后... 所以我决定放弃它并只克隆部分

编辑:添加错误信息

RA 层请求失败:“/svn/project/!svn/vcc/default”上的 REPORT 请求失败:“/svn/project/!svn/vcc/default”的报告:无法读取 block 大小:安全连接在/usr/lib/perl5/site_perl/Git/SVN/Ra.pm 第 282 行截断 ( https://svn.myserver.com )

最佳答案

如果你想要整个历史,为什么不从你的 svn 仓库的 rev 1 开始呢?当然这需要一段时间,但您可以分部分进行。例如:

git svn clone -r1:10000 https://svn.myserver.com/project/ .

一旦完成 cd 进入 project 并运行:

git svn fetch svn -r10000:20000

你甚至可以重叠:

git svn fetch svn -r9997:20000

它会跳过它已经得到的部分。您可能只是不想制造差距。

而且我知道您之前曾尝试在没有任何 -r 规范的情况下将其全部 pull 出并出现错误,但也许分段进行会解决这个问题。如果确实遇到错误,请尝试再次运行相同的命令。在过去使用 git svn clone 时,我遇到过很多失去连接或出现随机错误的情况,但 cd-ing 进入项目并 git svn fetchrebase-ing(有时反复)似乎一直在从它之前停止的地方开始。

关于Git Svn clone 某些修订版,并在未来继续克隆其他修订版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689582/

相关文章:

git - 如何在 Concourse 构建中提交对 git 的更改?

windows - git-cheetah 多次修改路径环境变量

svn - 从 SVN 存储库创建 'stable' 版本

Git 或 Hg 到 SVN 的桥梁

git - 以编程方式确定 Git 分支状态的正确方法是什么?

git - 对于 libGDX 自动生成的默认项目,我的 .gitignore 中应该包含什么?

SVN Ant 更新示例

svn - 在 Subversion 中移除僵尸锁

git - 在不重新下载所有内容的情况下更新 git-svn git 镜像

linux - 如何在 Cpanel/WHM 中配置 SVN?