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

时间:2013-11-15 22:40:28

标签: 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>

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

所以现在我给出了命令

cp ~/manifest-build-1234.xml .repo/manifests
repo init -m manifest-build-1234.xml
repo sync

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

如果我完全删除这些软件包,然后再执行另一个repo sync,则会以正确的版本检出软件包。

所以我的问题是:在我执行repo sync之前没有删除所有内容,我怎样才能保证所有软件包都以正确的版本检出?

1 个答案:

答案 0 :(得分:2)

使用--trace with repo命令检查运行repo命令时执行的步骤。例如&#34; repo --trace sync -j4&#34;