2012-02-01 14 views
18

Mi sembra di avere una buona conoscenza di git, ma quando si tratta del comando repo, mi perdo. Ho letto del comando repo, ma non sono ancora sicuro di come leghi tutto insieme.Comando Repo di Android e rami di commutazione

La mia più grande domanda è posso cambiare i miei rami correnti da pan di zenzero a ICS e forse indietro?

vedo il comando:

repo init -u https://android.googlesource.com/platform/manifest 

Dalla mia comprensione, questo creerà un pronti contro termine con il ramo master. Se voglio specificare il ramo, posso fare:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 

Il download è di circa 8 GB, credo, quindi non voglio avere a soffiare il mio repo via se condividono il codice. c'è un modo per cambiare filiali in repo?

risposta

41

Se si esegue repo init una seconda volta con un ramo diverso, è possibile semplicemente repo sync e non scaricherà nuovamente l'intero codice sorgente.

+0

Fare riferimento a https://groups.google.com/forum/#!topic/android-building/rtH5ZbJC7qU, ha lo stesso argomento. – execve

4

Il parametro repo -b specifica il ramo del repository git .repo/manifests che deve essere estratto. Il file default.xml in questo repository definisce il ramo su cui dovrebbero posizionarsi gli altri git repositiories (progetti).

Sembra che il pronti contro termine sia scritto in modo tale che se si estrae un altro ramo manifest, la repo sync ricomincerà di nuovo tutto il codice sulla rete.

È possibile eseguire repo forall -c 'git checkout branch_name' che eseguirà il checkout del ramo specificato per tutti i progetti dichiarati nel manifest corrente ma se ci sono progetti aggiunti/rimossi tra gingerbread e ics (che esistono), non si otterrà il codice per questi progetti.

Eseguire il nome di git checkout nel repository .repo/manifests, quindi eseguire la sincronizzazione di repository può consentire di risparmiare un sovraccarico di rete.

Altrimenti, a causa delle limitazioni del repo, l'unico vero modo per farlo è quello di mantenere due copie di lavoro di aosp o essere pronti a risincronizzare.

+2

Mi rendo conto che l'hai postato qualche mese fa, ma la parte relativa al download della fonte non è più precisa se lo fosse. – gparent

Problemi correlati