定义
Repo 可以在必要时整合 Git 代码库,将相关内容上传到我们的Gerrit修订版本控制系统,并自动执行 Android 的开发工作流程的部分环节。Repo 命令是一段可执行的 Python 脚本,您可以将其放在路径中的任何位置。使用 Android 源代码文件时,您可以使用 Repo 执行跨网络操作。也就是说 Repo 是谷歌用 Python 脚本写的调用 git 的一个脚本,可以管理多个 git 库
作用
Android 源代码工程(AOSP)也采用 Git 来进行版本管理。AOSP 作为一个大型开放源代码工程,有许许多多子项目组成,因此不能使用 Git 进行管理,它在 Git 的基础上建立了一套自己的代码仓库,使用工具 Repo 进行管理。组成 Repo 工具的 Python 脚本本身也是一个 Git 仓库。这个 Git 仓库在 AOSP 里面就称为 Repo 仓库。我们每次执行 Repo 命令的时候,Repo 仓库都会对自己进行一次更新
对于一个大型工程,工程会有很多 git 库,使用 git 一个个下载,费力费时;而使用 repo 下载,省事,省时间
AOSP 仓库特点
AOSP 仓库分为四个部分:Repo脚本、Repo仓库、Manifest仓库和AOSP 子项目仓库组成。
Manifest 仓库管理着 AOSP 所有的子项目的 Git 仓库元信息。Repo 命令通过 Manifest 仓库知道 AOSP 都包含有哪些子项目、子项目的名称、仓库地质,然后就可以通过 Repo 仓库里面的 Python 脚本来操作 AOSP 的子项目。
原理
AOSP项目清单git库下,会有一个文件default.xml(.repo/manifests/default.xml)