Bja*_*sen 45 git android repository android-manifest android-source
在Android的源是一个Git仓库的大型层次结构.它们由名为repo的自定义脚本管理.Repo使用manifest.xml确定要管理的git存储库.Android的manifest.xml与所有其他git存储库一起托管在git存储库中.
如何在Android中管理此存储库?具体来说,每个分支中托管的不同分支和不同文件是如何组织的?
Pek*_*der 63
首先,repo init创建.repo目录,克隆git存储库https://android.googlesource.com/tools/repo到.repo/repo,以及使用-u选项指定的git存储库到一个裸存储库.repo/manifests.git.在此之后,它创建的.repo/manifests目录,将其转换成一个Git仓库,通过从创建符号链接.repo/manifests/.git到.repo/manifests.git.然后,它会检出指定的分支-b,并默认创建.repo/manifest.xml指向指定文件(-m选项)的符号链接. .repo/manifests.repo/manifests/default.xml
大致如下:
repo init -u $URL -b $BRANCH -m $MANIFEST -------------------- mkdir .repo; cd .repo git clone https://android.googlesource.com/tools/repo git clone --bare $URL manifests.git mkdir -p manifests/.git; cd manifests/.git for i in ../../manifests.git/*; do ln -s $? .; done cd .. git checkout $BRANCH -- . cd .. ln -s manifests/$MANIFEST manifest.xml
您可以追踪真正发生的事情 repo --trace init ...
然后,repo同步克隆git存储库以.repo/projects用于每个项目,manifest.xml并local_manifest.xml创建.git具有符号链接到相应裸存储库的工作目录,检出清单中指定的分支,并更新.repo/project.list.项目已经存在的情况略有不同,基本上执行了git pull --rebase.
在repo的根目录是一个名为".repo"的隐藏目录,在里面你会发现一个名为"manifests"的git项目,它通常包含一个名为"default.xml"的文件.此文件包含有关所有项目及其关联的git存储库所在位置的信息.此文件也是版本化的,因此当您使用"repo init -b XYZ"命令时,它将被还原,您可以返回到可能已添加/删除git项目的较旧分支.
这是一个描述清单格式的repo git repo文档的链接:
https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.txt
| 归档时间: |
|
| 查看次数: |
38507 次 |
| 最近记录: |