Die beste Möglichkeit, die android-Repository-Versionen nach dem Download mit repo / git effizient zu ändern

8

Ich habe eine Situation, in der ich eine Reihe von statischen Kopien von Android-Quellcode verschiedener Versionen erstellen muss.

Das Ausführen eines repo init -b $version; repo sync wird ewig dauern ( init erfordert eine Interaktion, und die Synchronisationen verschwenden meine Bandbreite zwischen den Versionen).

Mein aktuelles Setup ist, eine Basisversion (zB 1.6_r1) herunterzuladen, in einen neuen Ordner (android-1.6_r2) zu kopieren und dann init und sync ( repo init -b android-1.6_r2; repo sync ) erneut auszuführen. Die Synchronisierung schlägt jedoch manchmal fehl, mit Fehlern wie:

  

ndk / build / plattformen / android-3 / arch-arm / usr / inkl      Abbrechen von
     Arbeitsbaum synchronisieren: 100% (153/153), fertig.

     

Fehler: Entwicklung /: Plattform / Entwicklung auschecken caf83cb2b0ffde1a4cfb7cb258cbe012e283d9e1      Die Reposynchronisation hat FAIL auf android-2.1_r2.1s

zurückgegeben

Ich habe einige Posts mit ähnlichen Fehlern gefunden, die darauf hinweisen, dass Repo nicht mehr mit "geänderten" Dateien im Dateisystem synchronisiert ist, aber ich frage mich, ob meine Fehler durch das Ändern von Versionen unter Repos Nase verursacht werden.

Ist dies der richtige Weg, Repository-Versionen zu ändern? Gibt es allgemein eine zeit- / bandbreiteneffiziente Möglichkeit, ein android-1.6_r1 Repository in ein android-1.6_r2 zu verwandeln?

    
bhoward 15.11.2011, 23:08
quelle

2 Antworten

9

( AKTUALISIEREN : meine anfängliche Antwort impliziert, dass wir ein neues Repo inkrementell von einem vorherigen initialisieren können, zum Beispiel 1.6_r1 bis 1.6_r2, aber das korrekte Setup sollte einen lokalen "main" haben Spiegel "Repo, auf den wir verweisen können, wenn wir eine neue Init starten. Ich habe den folgenden Text geändert, um die falsche Implikation zu vermeiden."

Anstatt zu kopieren, fügen Sie --reference=/path/to/main/repo zu Ihrem repo init -Befehl für das neue Verzeichnis hinzu.

Wenn Sie beispielsweise bereits ein Repo im Verzeichnis /repos/aosp-main heruntergeladen haben (und mit googlesource.com synchronisiert wurden), können Sie Folgendes tun:

%Vor%

Und dann, wenn Sie eine andere Version möchten:

%Vor%

Auf diese Weise müssen wir nur mit der Adresse googlesource.com synchronisieren, wenn es neue Sachen gibt, die wir noch nicht heruntergeladen haben, und es sollte nur das bereits synchronisierte Hauptrepo verwenden, um zusätzliche Repos lokal zu initialisieren.

    
Joe 16.11.2011 07:23
quelle
0

Haben Sie sichergestellt, dass Sie das Reposcript aktualisieren, nur um sicher zu sein?

%Vor%     
LuxuryMode 16.11.2011 03:21
quelle