repo init出现错误fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle解决方法
·
当执行
repo init -u https://android.googlesource.com/platform/manifest时出现如下错误:
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable
原因是当repo init时,执行的repo是环境变量里面默认的repo,这个repo只是单纯一个几百行的python脚本,而不是完整的repo-project,所以要先去网络远端sync完整的repo-project,因为repo也是开源项目,设计者出于维护和使用体验,每次repo init的时候都要从远端sync最新的版本。(浏览器上查看https://gerrit.googlesource.com/git-repo/clone.bundle可以看到维护的history,需要翻墙)
在repo init时因为远端的git server的域名gerrit.googlesource.com会被GFW挡掉,就会出现Network is unreachable的情况,运气不好的时候可能一整天都没办法init成功。
可以按照以下两个方法解决:
方法一:
在命令行增加:
--repo-url=https://gerrit-google.tuna.tsinghua.edu.cn/git-repo,即:
$ repo init-u https://android.googlesource.com/platform/manifest --repo-url https://gerrit-google.tuna.tsinghua.edu.cn/git-repo
另外清华TUNA源还提供完整Android源码(AOSP),参考链接:https://mirrors.tuna.tsinghua.edu.cn
方法二:
通过分析repo脚本,就会发现根据当前run的repo的路径中是否有main.py和当前目录的.git信息,来判断是否是完整的repo-project,如果不是就会触发git clone去sync repo-project。那么避开git clone 的方法就是run repo-project中的repo来init。
如果你曾经有init成功过,就会在当前的目录下有一个.repo文件,例如{PATH},引用那个{PATH}/.repo/repo/repo来init,那么就不会去sync完整的repo-project了。
如果是首次repo init,就从
http://download.csdn.net/detail/xiaokeweng/8872981下载完整的.repo文件。
更多推荐

所有评论(0)