title: How to switch manifest with "repo init -m"
body: <p>I'm using repo to build Android. I want to build from a previous release (e.g. build #1234 from last month). I do something like this:</p>
  
  <p>I start with a special copy of the manifest that explicitly sets the revision for each package:</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;manifest&gt;
    ...
    &lt;project name="packages/apps/Browser" revision="f42301ffb36a68fadffdb87fa1bdc09aceac53cb"/&gt;
    &lt;project name="packages/apps/Calculator" revision="481a23ed78397e35201de3638ec0d76797b77d25"/&gt;
    &lt;project name="packages/apps/Calendar" revision="19a0737be4d51aa71a0d122f5f24ab7e53869398"/&gt;
    &lt;project name="packages/apps/Camera" revision="67e6c190f82f0f7b8704fe5663eb92082c4cc943"/&gt;
    ...
  &lt;/manifest&gt;
  </code></pre>
  
  <p>This is basically a copy of default.xml, but with the revision for each package specified explicitly for the commit that was in place when build #1234 was created.</p>
  
  <p>So now I give the commands</p>
  
  <pre><code>cp ~/manifest-build-1234.xml .repo/manifests
  repo init -m manifest-build-1234.xml
  repo sync
  </code></pre>
  
  <p>The result: <em>Some</em> of the packages are set to the revision specified in the manifest, but some of the others remain at the previous head.</p>
  
  <p>If I delete those packages entirely, and then do another <code>repo sync</code>, then the packages are checked out at the correct revision.</p>
  
  <p>So my question is: short of just deleting everything before I do the <code>repo sync</code>, how can I guarantee that all packages are checked out at the correct revision?</p>