2014-11-05 22 views
5

Sono stato il passaggio tra diversi rami del codice sorgente di Android con i comandi come:Ridurre la dimensione della sorgente Repository Android .repo Directory

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2 
repo sync 

Il tag più recente è stato android-5.0.0_r2. Ho notato che la mia directory .repo ora ha una dimensione di 30 GB. È la dimensione prevista? Se no, allora sto speculando che ho una cronologia degli altri rami/tag che ho usato memorizzati nella directory .repo.

C'è un modo per ridurre la dimensione della directory .repo? Vorrei limitare solo alla fonte/oggetti/immagini/ecc. Ho bisogno del ramo in particolare su cui sto lavorando. Lo spazio su disco fisso è più importante per me del tempo di download.

Vedo git gc utilizzato nei repository .git, ma in questo caso non funziona. Esiste un equivalente per i repository .repo?

Nota: ho provato repo prune, ma ciò non ha ridotto la dimensione della directory .repo.

risposta

0

Non testato, ma I penso è possibile utilizzare lo switch -c per scaricare solo i rami attualmente necessari.

Con questo flag, il repository scaricherà solo la revisione (diramazione) specificata nel manifest, non tutti i rami presenti sul server remoto. Ci risparmierà così un po 'di spazio, e di nuovo ci vorrà meno tempo per il download.

Fonte e ulteriori informazioni: http://xda-university.com/as-a-developer/repo-tips-tricks

+0

Mentre ciò contribuirebbe a ridurre al minimo lo spazio di un singolo ramo, non credo che questo aiuti se scarichi più rami.Finirò comunque con contenuti extra nei luoghi in cui i rami non si sovrappongono. – GrandAdmiral

+1

Non credo che -c sia supportato più. Non c'è alcun riferimento ad esso nell'attuale fonte di repository. –

6

La bandiera -c non sembra essere più supportato, ma ecco cosa si può fare.

Al momento della scrittura, repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 crea 33GB vale la pena di file.

L'aggiunta di --depth=1 riduce a 21 GB.

Aggiunta di --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5 per escludere dispositivi e componenti che non sono interessati a ridurre a 19 GB.

Solo per l'archiviazione, è possibile rimuovere i file estratti per ciascun repository .git all'interno di .repo/per risparmiare ancora più spazio, ma non sono sicuro di come farlo. Se lo facessi, repo sync controllerebbe i file "mancanti" quando necessario.

Per riferimento, la mia linea di comando completa era
repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 --depth=1 --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5,mako
quindi questo albero sarebbe lavorare solo per il Nexus 4. Ho non ancora provato a costruire da questo albero, ma non c'è ragione che non avrebbe funzionato.

È anche possibile rimuovere progetti non utilizzati da specifying a local manifest, o anche lavorare da un filesystem compresso come btrfs con le giuste opzioni di montaggio, ma non sono sicuro dell'impatto sulle prestazioni.

Problemi correlati