平臺
Ubuntu 18.04
GitLab Community Edition 11.11.0
參考
概述
gitlab提供了一個能夠運行在本地的免費的代碼託管平臺,就像一個本地的github,能夠將本身的平時寫的或者一些經典的開源程序下載下來,而後mirror到本地gitlab進行託管,好比Android。咱們知道Android工程是有幾百個大大小小的git工程組成,爲了管理這些git工程,Android提供了repo。關於repo的用法,請參考:
那麼如何將Android的代碼倉庫mirror到本地的gitlab上呢? 下面以一個Android代碼倉庫中的一個git工程說明一下,清楚了一個怎麼搞,其餘的也不在話下,能夠用腳本批量處理。
正文
1、搭建gitlab服務
2、下載Android代碼
參考:
爲了方便之後下載,先按照官網的推薦,創建的一個Android代碼倉庫的本地mirror,下載完成後,內容以下:
而後利用這個mirror,本地clone出一份Android代碼,好比:
對應的manifest.xml文件以下(固然也能夠只clone一份aosp_mirror/platform/manifest.git,而後切到tags爲android-7.1.2_r36的分支):
3、上傳到gitlab
一、首先須要往本地gitlab上傳一個repo工程
在上面下載的aosp_mirror目錄下有一個git-repo.git工程,這裏須要將其上傳到gitlab上,首先在gitlab上建立一個空的git-repo工程:
二、上傳git-repo.git
進入git-repo.git目錄下,執行以下命令:
執行完畢後,能夠看到gitlab裏的git-repo裏已經有東西了:
三、上傳一個git工程
以上面的manifest.xml中的build/soong爲例,熟悉manifest.xml語法的話應該清楚,path表示未來會在本地建立build/soong目錄,而name表示的是遠程服務器中的路徑。
爲了簡單起見,首先在gitlab上建立一個名爲build_soong的空的git工程:
而後在aosp_mirror的platform下找到soong.git工程,進行上傳:
此時gitlab上的build_soong工程裏已經有內容了:
四、建立一個manifest工程,用於存放manifest.xml文件
4、下載測試
repo init:
repo sync:
查看:
完。