我尝试重新同步cyanogenmod来源。直到99%的阶段,但似乎在这个阶段有一个大文件,并且由于我的互联网连接频繁断开,它无法下载它。
每次断开连接时,都会打印fatal: early EOF
,repo sync
会停止,看起来在下一次运行中,它会从头开始启动此文件,尽管之前保存了一个临时对象
有没有办法告诉repo sync
从下一次运行开始,从它在特定文件中停止的点开始,而不是从头开始?
我尝试在一个无限循环中运行repo sync,但是下载没有结束,而是我的记忆已经满了。
时态文件位于~/android/system/.repo/project-objects/CyanogenMod/android_frameworks_base.git/objects/pack
文件夹下,格式为:
78M tmp_pack_7JhRgA
106M tmp_pack_fprjIZ
523M tmp_pack_tydAd5
436M tmp_pack_po9dEw
780M tmp_pack_rewDSS
我还尝试在每次新的repo同步之前删除这些临时文件以避免完整内存,但它仍然无法帮助结束下载。顺便说一句,似乎删除它们不会使下一次运行从另一个点开始,所以它确认了它在下次运行中忽略它们的怀疑。
我运行的确切repo sync命令是repo sync -j4 -f -c
repo init命令是:
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
互联网断开连接后打印的错误是:
Fetching projects: 94% (497/528) Fetching project CyanogenMod/android_frameworks_opt_vcard
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s
Fetching projects: 96% (507/528) Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s 616668), 4.93 MiB | 131.00 KiB/s
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s 616668), 5.12 MiB | 123.00 KiB/s
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s
Fetching projects: 99% (523/528) Fetching project CyanogenMod/android_hardware_qcom_audio
Fetching project CyanogenMod/android_hardware_qcom_audio00 KiB/s
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
答案 0 :(得分:0)
我刚刚尝试了以下命令,同步已经过了。我得到了所有的项目
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0`
repo sync -j8 -q -c --no-tags`
repo sync的-c/--current-branch
选项使repo只获取你真正需要的分支而不是每个git的所有分支。
--no-tags
避免同步所有标记
使用-c和--no-tags可以让你下载更少,因此同步更快。
如果你想让它更快,你可以尝试--depth=<n>
,但这将修剪git历史。
互联网断开后,repo有效地从中断的地方回来。它再次从项目列表开始工作,可以为已经处理的项目获取一些新数据。
但它在之前已同步的项目中移动得非常快,因为之前获取的所有数据都存在于 .repo 目录中。
我希望确保您在断开连接后每次都没有repo init
。
答案 1 :(得分:0)
最后,似乎问题得到了增强,因为使用VMWare运行Ubuntu机器。不知何故,VMWare导致互联网接口频繁断开,当我尝试使用VirtualBox时,虽然偶然发生fatal: early EOF
,但最终互联网接口足够稳定以完成同步。