Wie schaltet manifest mit "repo init -m"

Ich bin mit repo zu bauen Android. Ich möchte zu bauen, die von einer früheren Version (z.B. build #1234 vom letzten Monat). Ich tun etwas wie dieses:

Beginne ich mit einer speziellen Kopie des manifests, die explizit legt die revision für jedes Paket:

<?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>

Dies ist im Grunde eine Kopie von default.xml aber mit der revision, die für jedes Paket explizit angegeben, die für den commit, der an Ort und Stelle war, wenn build #1234 erstellt wurde.

So, jetzt gebe ich die Befehle

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

Das Ergebnis: Einige von den Paketen an die revision, die im manifest festgelegt, aber einige andere bleiben bei den früheren Kopf.

Lösche ich die Pakete komplett und dann das andere tun repo sync, dann die Pakete, die ausgecheckt sind an der richtigen revision.

Also meine Frage ist: kurz, einfach alles löschen, bevor ich die repo sync, wie kann ich garantieren, dass alle Pakete ausgecheckt auf die richtige revision?

  • Ahhh, großen Hinweis: Jedes Projekt, das in einem "detached HEAD" - Zustand ist ordnungsgemäß synchronisiert. Jedes Projekt, für das ich eigentlich auf dem Namen der Zweig bleibt, der Zweig.
  • Okay, dann führen Sie einfach "repo aufgeben <branch_name>" bevor Sie beginnen "repo sync". Es ist nur ein workaround. Ich bin nicht sicher über das, was passiert in Ihrem Fall.
  • Danke! Ich werde es einmal versuchen. Ist "repo verlassen" der Kehrwert von "repo-start"?
  • Ja, es ist. Es löscht Zweig namens <branch_name>.
  • Verwenden Sie --trace mit repo-Befehl, um zu überprüfen, welche Schritte die ausgeführt werden während der Ausführung von repo-Befehle. e.g "repo --trace-sync -j4"
  • Danke, das ist gut zu wissen. Das ist alles so frustrierend. Ich war etwas Arbeit gestern, und alle meine "repo-uploads" scheiterte zunächst, denn ich hatte vergessen, dass ich getan hatte "repo verlassen" der letzten Woche. Es ist leicht genug, um zu beheben, aber diese kleinen Pannen in meinem workflow sind so nervig.
  • machen Sie Ihrem Kommentar eine Antwort, und ich werde markieren Sie es als die Lösung.

InformationsquelleAutor Edward Falk | 2013-11-15
Schreibe einen Kommentar