如何使用“repo init -m”切换清单

Edw*_*alk 5 android repository

我正在使用 repo 来构建 Android。我想从以前的版本构建(例如上个月的构建#1234)。我做了这样的事情:

我从清单的特殊副本开始,它明确设置了每个包的修订版本:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  ...
  <project name="packages/apps/Browser" revision="f42301ffb36a68fadffdb87fa1bdc09aceac53cb"/>
  <project name="packages/apps/Calculator" revision="481a23ed78397e35201de3638ec0d76797b77d25"/>
  <project name="packages/apps/Calendar" revision="19a0737be4d51aa71a0d122f5f24ab7e53869398"/>
  <project name="packages/apps/Camera" revision="67e6c190f82f0f7b8704fe5663eb92082c4cc943"/>
  ...
</manifest>
Run Code Online (Sandbox Code Playgroud)

这基本上是 default.xml 的副本,但为创建 build #1234 时的提交明确指定了每个包的修订版本。

所以现在我发出命令

cp ~/manifest-build-1234.xml .repo/manifests
repo init -m manifest-build-1234.xml
repo sync
Run Code Online (Sandbox Code Playgroud)

结果:一些软件包被设置为清单中指定的修订版本,但其他一些软件包仍保留在先前的头部。

如果我完全删除这些包,然后执行另一个操作repo sync,那么这些包将以正确的版本检出。

所以我的问题是:除了在执行之前删除所有内容之外repo sync,我如何保证所有包都以正确的版本签出?

mru*_*jay 2

将 --trace 与 repo 命令一起使用来检查运行 repo 命令时执行了哪些步骤。例如“repo --trace 同步-j4”