Android內核開發:理解和掌握repo工具

1. repo是什麼?python

 

repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。android

 

2. 爲何要用repo?git

 

由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。github

 

repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。api

 

3. 怎麼安裝repo?服務器

 

官方的repo腳本下載方法:微信

 

1curl

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >  ./repo工具

 

因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):學習

 

1

2

3

4

$ git clone git://git.omapzoom.org/git-repo.git

$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  

 

cp git-repo/repo  ./repo

 

或者修改手頭已有的被牆的repo文件:

 

1

2

3

4

REPO_URL = 'git://git.omapzoom.org/git-repo.git'

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo' 

 

REPO_REV = 'stable'

 

固然,你也能夠去個人GitHub下載這個repo文件,地址:

 

https://github.com/Jhuster/AOSP/blob/master/repo

 

4. 怎麼下載源碼?

 

上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。

 

通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:

 

1

$ repo init -u https://android.googlesource.com/platform/manifest

 

固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest

 

初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。

 

若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git -b android-5.0.2_r1 

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1

 

而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。

 

5. manifest.xml文件清單的組成

 

上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:

 

(1) manifest 最頂層的XML元素

 

(2) remote  設置遠程git服務器的屬性,如名稱、根URL地址等

 

(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑

 

(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest

 

其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。

 

7. 經常使用repo命令

 

這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。

 

(1) repo init   // 初始化repo倉庫

 

(2) repo sync   // 下載源碼

 

(3) repo start  // 建立分支

 

(4) repo checkout //切換分支

 

(5) repo branches //查看分支

 

(6) repo status   //查看文件狀態

 

8.

1. repo是什麼?

 

repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。

 

2. 爲何要用repo?

 

由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。

 

repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。

 

3. 怎麼安裝repo?

 

官方的repo腳本下載方法:

 

1

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >  ./repo

 

因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):

 

1

2

3

4

$ git clone git://git.omapzoom.org/git-repo.git

$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  

 

cp git-repo/repo  ./repo

 

或者修改手頭已有的被牆的repo文件:

 

1

2

3

4

REPO_URL = 'git://git.omapzoom.org/git-repo.git'

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo' 

 

REPO_REV = 'stable'

 

固然,你也能夠去個人GitHub下載這個repo文件,地址:

 

https://github.com/Jhuster/AOSP/blob/master/repo

 

4. 怎麼下載源碼?

 

上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。

 

通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:

 

1

$ repo init -u https://android.googlesource.com/platform/manifest

 

固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest

 

初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。

 

若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git -b android-5.0.2_r1 

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1

 

而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。

 

5. manifest.xml文件清單的組成

 

上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:

 

(1) manifest 最頂層的XML元素

 

(2) remote  設置遠程git服務器的屬性,如名稱、根URL地址等

 

(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑

 

(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest

 

其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。

 

7. 經常使用repo命令

 

這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。

 

(1) repo init   // 初始化repo倉庫

 

(2) repo sync   // 下載源碼

 

(3) repo start  // 建立分支

 

(4) repo checkout //切換分支

 

(5) repo branches //查看分支

 

(6) repo status   //查看文件狀態

 

8. 小結

 

關於repo工具就介紹到這裏了,有任何疑問歡迎留言或者來信lujun.hust@gmail.com交流,也歡迎關注個人新浪微博@盧_俊 獲取最新的文章和資訊。

 

本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304

 

結束語

 

免費學習更多精品課程,登陸樂搏學院官網http://h.learnbo.cn/

或關注咱們的官方微博微信,還有更多驚喜哦~

 

本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304

1. repo是什麼?

 

repo是一種代碼版本管理工具,它是由一系列的Python腳本組成,封裝了一系列的Git命令,用來統一管理多個Git倉庫。

 

2. 爲何要用repo?

 

由於Android源碼引用了不少開源項目,每個子項目都是一個Git倉庫,每一個Git倉庫都有不少分支版本,爲了方便統一管理各個子項目的Git倉庫,須要一個上層工具批量進行處理,所以repo誕生。

 

repo也會創建一個Git倉庫,用來記錄當前Android版本下各個子項目的Git倉庫分別處於哪個分支,這個倉庫一般叫作:manifest倉庫。

 

3. 怎麼安裝repo?

 

官方的repo腳本下載方法:

 

1

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >  ./repo

 

因爲官網被牆,目前可使用的repo腳本下載方法以下(二者選一):

 

1

2

3

4

$ git clone git://git.omapzoom.org/git-repo.git

$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  

 

cp git-repo/repo  ./repo

 

或者修改手頭已有的被牆的repo文件:

 

1

2

3

4

REPO_URL = 'git://git.omapzoom.org/git-repo.git'

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo' 

 

REPO_REV = 'stable'

 

固然,你也能夠去個人GitHub下載這個repo文件,地址:

 

https://github.com/Jhuster/AOSP/blob/master/repo

 

4. 怎麼下載源碼?

 

上面說過,Android源碼分支其實由一個叫manifest倉庫來管理起來的,所以,下載源碼首先要clone這個manifest倉庫。這個倉庫裏面有一個XML文件,其實就是一個文件清單,列出了本代碼倉庫依賴哪些代碼,該去哪下載,分支是什麼。

 

通常用repo init命令來clone這個manifest倉庫,例如,若是要下載Android源碼,則方法以下:

 

1

$ repo init -u https://android.googlesource.com/platform/manifest

 

固然,上面的官網被牆了,所以,推薦以下鏡像(二者選一):

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest

 

初始化完畢後,你會在本地的.repo文件夾中看到manifest倉庫的內容,這個文件夾中最重要的文件是manifest.xml(有的倉庫用的是default.xml,而後指向具體的xml),它就是上面說到的文件清單。

 

若是要選擇特定版本的Android源碼,或者在已下載的源碼基礎上切換到其餘版本,則可使用-b選項:

 

1

2

$ repo init -u git://git.omapzoom.org/platform/manifest.git -b android-5.0.2_r1 

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1

 

而後使用 repo sync 命令進行同步便可下載好所有的Android源碼了。

 

5. manifest.xml文件清單的組成

 

上面提到了repo init須要初始化一個manifest倉庫,倉庫中含有一個很重要的manifest.xml文件清單,其實這個manifest.xml並不複雜的,它就是用XML文件的格式記錄了本項目依賴的各個Git倉庫的名稱、地址,以及分支等信息。經常使用的元素以下所示:

 

(1) manifest 最頂層的XML元素

 

(2) remote  設置遠程git服務器的屬性,如名稱、根URL地址等

 

(3) project 須要clone的Git倉庫,path表示本機路徑,name表示遠程版本庫的相對路徑

 

(4) copyfile 執行拷貝操做,把URL/$src地址的文件拷貝到./$dest

 

其實,若是不使用repo工具,也是能夠對照manifest.xml文件清單直接使用「git clone」的方式一個project一個project的下載的,而後對每一個project進行git checkout特定的分支。

 

7. 經常使用repo命令

 

這一塊網上文章不少,我就不詳細講解了,只列出經常使用命令。

 

(1) repo init   // 初始化repo倉庫

 

(2) repo sync   // 下載源碼

 

(3) repo start  // 建立分支

 

(4) repo checkout //切換分支

 

(5) repo branches //查看分支

 

(6) repo status   //查看文件狀態

 

8. 小結

 

關於repo工具就介紹到這裏了,有任何疑問歡迎留言或者來信lujun.hust@gmail.com交流,也歡迎關注個人新浪微博@盧_俊 獲取最新的文章和資訊。

 

本文出自 「Jhuster的專欄」 博客,請務必保留此出處http://ticktick.blog.51cto.com/823160/1653304

相關文章
相關標籤/搜索