京寵展信息指南
930
2022-05-29
Google使用git和repo管理AOSP源碼。
概念區分
1、Git和git(https://source.Android.com/setup/develop#git)
Git是版本控制系統,我們使用git工具進行代碼倉庫和分支的管理。比如我可以使用git clone從遠程倉庫的一個分支下載代碼到本地,可以git push將本地倉庫的某一個分支推送到遠程倉庫的分支,關于git使用可以參考progit
Google將android源碼拆分成許多個Git倉庫,我們知道每一個git倉庫下有.git文件
hinzer@ubuntu:android-10$ find -name ".git" ./developers/demos/.git ./developers/build/.git ./developers/samples/android/.git ./.repo/repo/.git ./.repo/manifests/.git ./cts/.git ./platform_testing/.git ./prebuilts/go/linux-x86/.git ./prebuilts/go/darwin-x86/.git ./prebuilts/build-tools/.git ./prebuilts/clang/host/linux-x86/.git ./prebuilts/clang/host/darwin-x86/.git ./prebuilts/checkcolor/.git ./prebuilts/android-emulator/.git ./prebuilts/asuite/.git ./prebuilts/gradle-plugin/.git ./prebuilts/manifest-merger/.git ^C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2、Repo和repo(https://source.android.com/setup/develop#repo)
然后使用一個Repo倉庫對這些拆分開來的Git倉庫集中起來進行管理,在源碼根目錄下有一個.repo文件,其中manifest.xml是一個清單文件,記錄了遠程分支、本地分支、本地目錄之間對應關系。
hinzer@ubuntu:android-10$ tree .repo -L 1 .repo ├── manifests # git倉庫,清單文件列表 ├── manifests.git ├── manifest.xml # 重要,當前清單文件的指向!! ├── project.list ├── project-objects ├── projects └── repo # git倉庫,包含repo運行的所有腳本 5 directories, 2 fileso
1
2
3
4
5
6
7
8
9
10
11
12
在.repo目錄之前,還有一個repo工具(通過repo init來初始化Repo倉庫),這是一個python寫的腳本,可以直接閱讀源碼(也就是可執行文件的位置)查看代碼邏輯。
hinzer@ubuntu:android-10$ whereis repo repo: /home/hinzer/bin/repo hinzer@ubuntu:android-10$ cat /home/hinzer/bin/repo ... ...
1
2
3
4
5
6
7
PS: google將android源碼拆分成許多個Git倉庫,又通過Repo將這些拆分還原回一個android源碼。像不像計算機原理中的化整為零,還零為整的思想?
平時使用o
1、Repo和Git
Repo 并非用來取代 Git,只是為了讓您在 Android 環境中更輕松地使用 Git。一般我們使用repo命令建立Repo倉庫,同步android源碼;使用git命令對我們修改的其中一個模塊提交。
2、Gerrit倉庫
一個網頁系統,用于代碼審核,也方便查看別人提交的patch。
3、OpenGrok
網頁系統,在線閱讀源碼的利器。
4、Android Studio
用于開發 Android 應用的官方集成開發環境 (IDE)。
相關資料
Git 文檔
Repo介紹
Repo 命令參考文檔
Android Git
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。