android 的 repo 工具如何知道每个 repo 使用哪个分支?

问题描述

Google 的 repo 工具用于将所有 android 存储库克隆到正确的位置。它从一个 .xml 文件中读取存储库,如下所示:https://github.com/GrapheneOS/platform_manifest/blob/11/default.xml

但是,repo 如何知道将它克隆的每个存储库放在哪个分支中? .xml 上没有提交/分支信息

例如,它只是说

  <project path="device/google/bonito-sepolicy" name="device_google_bonito-sepolicy" groups="device,bonito" remote="grapheneos" />

对于这个存储库。一些存储库(比如这个)只有一个分支,但有些(主要来自谷歌)有很多分支。并非所有这些都是 master 上的更新。

那么,它是如何工作的?

解决方法

清单(不包括 .repo/local_manifests 中的清单),在您的情况下为 default.xml,具有 default 元素。

<default revision="refs/tags/android-11.0.0_r27"
           remote="aosp"
           sync-j="4" />

如果 project 元素没有自己的 revisionupstream,则使用 default 元素中的 revision="refs/tags/android-11.0.0_r27"。其他属性也一样。 project 也没有自己的 remotesync-j,因此使用 default 中的那些。

有关详细信息,您可以阅读.repo/repo/docs下的文档。