Was bedeutet repo init-und repo-sync eigentlich?
Ich gepostet diese Frage von Android-Enthusiasten, aber dachte, es war der falsche Ort zu Fragen, so ich Sie gelöscht, gibt es ab und zu zu Fragen, es "wieder" hier.
Dies ist so eine noob Frage, und mir verzeihen, wenn es ist, aber ich möchte nur verstehen die zugrunde liegenden Konzepte deutlich. Lesen repo-Hilfe und Google-repo-Befehlsreferenz Seite nicht wirklich erleuchten, viel. Ich Verstand einige bits aus dem Google-Referenz-Seite, aber ich brauche noch einige weitere Klarstellungen.
Folgenden Sie den Anweisungen zum herunterladen von android-Quelle, die ich ausgeführt diese zwei Befehle auf einer Ubuntu-shell: (ich habe genommen sorgte sich von allen Voraussetzungen für die Umwelt.)
~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
~/android4.2.2$ repo sync -j4
Nach einer Wartezeit von einem halben Tag für repo, um den Download abzuschließen, landete ich mit 19G des heruntergeladenen Materials in android4.2.2-Verzeichnis. Also, was genau gerade passiert ist, und warum es erreichen, 19G, wenn Google sagte, ich sollte nur damit rechnen, dass rund 8G-source-Dateien?
InformationsquelleAutor Poly Bug | 2014-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
repo
ist ein python-wrapper-Skript fürgit
, seine Google-Quelle Seite definiert es alsrepo init
Befehl initialisiert repo im aktuellen Verzeichnis. Das ist, es lädt die aktuelle repo-Quelle und einemanifest.xml
- Datei beschreibt, dass die Verzeichnis-Struktur von git-repositories, und speichern Sie alle diese in.repo
sub-Verzeichnis in das aktuelle Verzeichnis. In Ihrem Fall, haben Sie ein optionales-b
argument, welches verwendet wird, wählen Sie die Verzweigung zur Kasse. Per default (d.h., wenn-b
argument nicht verwendet wird), master-branch verwendet wird.repo sync
updates arbeiten Baum auf die neueste revision. Das ist, synchronisiert die lokalen Projekt-Verzeichnisse mit den remote-repositories angegeben in der manifest-Datei. Wenn eine lokaleProjekt noch nicht existiert, wird es-Klon eine neue lokale Verzeichnis an, von dem remote-repository einrichten und tracking-branches, die im manifest festgelegt. Wenn das lokale Projekt bereits vorhanden ist, wird aktualisieren Sie die remote-Niederlassungen und rebase-jede neue lokale änderungen, die auf der Oberseite des neuen remote-änderungen.
-j
argument wird verwendet, um die Anzahl der parallelen jobs zu führen. Der default-Wert kann definiert werden in dem manifest, und auch überschrieben werden können in die Kommandozeile, wie in Ihrem Fall.Werden sollten, da Sie neben den Quellcode-Dateien, erhalten Sie alle die Geschichte von Android seit dem Anfang der Zeit 🙂
Hoffe, das hilft.
-j
argument bestimmt die Anzahl der parallelen jobs... heißt das, dass es Download-4x mehr (in meinem Fall)? oder ist es läuft repo in 4 verschiedenen Prozesse viel wie die Trennung die ganze Sache in 4 Unterabschnitte und läuft repo, die in den einzelnen Abschnitt aber immer noch herunterladen eine ganze Sache?19G ist mehr als zweimal 8G, warum muss ich alle herunterladen der Android-Geschichte, wenn ich es nicht brauchen? Ich möchte nur eine bestimmte version, nämlich 4.2.2_r1.2.
-j4
bedeutet "download 4 Projekte gleichzeitig". Es hat nichts zu tun mit Gesamtvolumen von downloads. Was Ihre zweite Frage, ich schlage vor, Sie lernen ein wenig mehr übergit
- und source-control-management im Allgemeinen.Sie können die
--shallow
optionrepo init
zum erstellen eines flachen Klon, der nur begrenzten Historie jedes git. Dies zerstört die Fähigkeit zu tun, source-code, Geschichte der Forensik und sehen, wie und Wann änderungen eingeführt wurden (und von wem).wenn Sie dies nicht tun, müssen den Quellcode ändern, Geschichte und andere Funktionen, die das
repo/git
Sie können löschen Sie die.repo/
Ordner (und.git/
Ordner im Projekt Ordner).InformationsquelleAutor ozbek