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?
( 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:
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.
Haben Sie sichergestellt, dass Sie das Reposcript aktualisieren, nur um sicher zu sein?
%Vor%Tags und Links android git android-manifest repository android-source