1. 程式人生 > >repo init報錯Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

repo init報錯Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

在涉及到AOSP的專案程式碼同步時,大家經常會用到repo工具(關於repo可以看我之前寫的一篇文章)。由於眾所周知的原因,我們在訪問谷歌服務時會受到各種限制。執行repo init命令時,設計者出於維護和使用體驗的考慮,每次都要去伺服器端同步最新版本的repo工具,這時大家經常會遇到報錯:

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 110] Connection timed out

這時大家一般會考慮用科學上網的方式解決。而現在有了更便利的解決方法。清華大學開源軟體站

維護了一個AOSP專案的映象源,通過映象源我們可以非常容易的獲取到我們需要的程式碼。

免翻牆獲取repo工具的方式

通過清華大學映象源clone repo程式碼

git clone https://gerrit-google.tuna.tsinghua.edu.cn/git-repo

本地會同步下一個名為git-repo的工程,工程裡包含最新的repo工具,執行repo init就可以直接本地的repo,此時不會再向google的伺服器同步最新的repo工具

執行repo init

[git-repo路徑]/repo init -u https://android.googlesource
.com/platform/manifest

PS:
我還在清華大學映象網站上看到另外一種方式:

update:

上面的方式是將repo新增到環境變數,但是repo執行時,仍然會去google伺服器請求最新版本,解決方式是在本地環境變數中指定repo伺服器地址

repo的執行過程中會嘗試訪問官方的git源更新自己,如果想使用tuna的映象源進行更新,可以將如下內容>複製到你的~/.bashrc裡

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
並重啟終端模擬器。