由于频繁断网,repo sync 停留在 99%
repo sync stuck at 99% because of frequent internet disconnections
我尝试重新同步 cyanogenmod 源。一直到99%的阶段,不过这个阶段好像有一个大文件,由于我经常断网,所以下载不了。
每次断开连接时,打印 fatal: early EOF
,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 sync -j4 -f -c
repo 初始化命令是:
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
我刚才尝试了以下命令并且同步失败了。我得到了所有的项目
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0`
repo sync -j8 -q -c --no-tags`
回购同步的 -c/--current-branch
选项使回购仅获取您真正需要的分支,而不是每个 git.
的所有分支
--no-tags
避免同步所有标签
使用 -c 和 --no-tags 可以减少下载量,从而加快同步速度。
如果您想让它更快,您可以尝试 --depth=<n>
,但这会删除 git 历史记录。
在互联网断开连接后,回购有效地从它停止的地方开始。它确实会再次从头开始处理项目列表,可能会为已经处理过的项目获取一些新数据。
但它在之前同步的项目中移动得非常快,因为它之前获取的所有数据都在 .repo 目录中。
我希望确保您不会在断开连接后每次都执行 repo init
。
最后,似乎问题得到了加强,因为使用了用于 运行 Ubuntu 机器的 VMWare。不知何故 VMWare 导致互联网接口频繁断开连接,当我尝试使用 VirtualBox 时,虽然偶尔会出现 fatal: early EOF
,但互联网接口最终稳定到足以完成同步。
我尝试重新同步 cyanogenmod 源。一直到99%的阶段,不过这个阶段好像有一个大文件,由于我经常断网,所以下载不了。
每次断开连接时,打印 fatal: early EOF
,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 sync -j4 -f -c
repo 初始化命令是:
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
我刚才尝试了以下命令并且同步失败了。我得到了所有的项目
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0`
repo sync -j8 -q -c --no-tags`
回购同步的 -c/--current-branch
选项使回购仅获取您真正需要的分支,而不是每个 git.
--no-tags
避免同步所有标签
使用 -c 和 --no-tags 可以减少下载量,从而加快同步速度。
如果您想让它更快,您可以尝试 --depth=<n>
,但这会删除 git 历史记录。
在互联网断开连接后,回购有效地从它停止的地方开始。它确实会再次从头开始处理项目列表,可能会为已经处理过的项目获取一些新数据。
但它在之前同步的项目中移动得非常快,因为它之前获取的所有数据都在 .repo 目录中。
我希望确保您不会在断开连接后每次都执行 repo init
。
最后,似乎问题得到了加强,因为使用了用于 运行 Ubuntu 机器的 VMWare。不知何故 VMWare 导致互联网接口频繁断开连接,当我尝试使用 VirtualBox 时,虽然偶尔会出现 fatal: early EOF
,但互联网接口最终稳定到足以完成同步。