repo init einem bestimmten commit
Im Gebäude der Cyanogenmod 9 (Android ICS) - system für ein Nexus S Handy (samsung crespo).
Das problem ist, dass, wenn ich tun:
repo init -u git://github.com/CyanogenMod/android.git -b ics
Den repo-inits auf den neuesten commit des ICS, in denen das manifest nicht enthalten sind einige device/samsung/Projekte, die ich brauche (speziell https://github.com/CyanogenMod/android_device_samsung_crespo).
Wie kann ich das repo init auf einen bestimmten commit?
In meinem Fall möchte ich den letzten commit mit dem google-android-4.0.3_r1 Zweig.
Ist dieses hier:
Wenn ich
repo init -u git://github.com/CyanogenMod/android.git -b commit-hash
Nicht funktioniert, scheint das repo init -b unterstützen nur den KOPF von einem Zweig.
Vielen Dank im Voraus.
InformationsquelleAutor renzoe | 2012-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lange Antwort:
Können Sie nicht angeben, ein branch-name (oder SHA oder was auch immer) zu
repo
, wird es nicht funktionieren. Ist hier, warum:repo
ist ein Skript, das Griffe eine Sammlung von repository-Projekte (die in der Tat unabhängig sind, git ' s). Projekt-Liste befindet sich in.repo
git, und enthält eine manifest-Datei, die im Grunde ist eine Liste aller git-repository, und Sie sind Zweige.-b
ist nur relevant fürrepo
git währendrepo init
.Hier ist ein Beispiel von
.repo/manifests/default.xml
:So, die richtige Art und Weise der Beschaffung der Quellen für das repository für den jeweiligen build zu erhalten, ist es manifest.
I. e., manifest, enthalten wird SHA (oder tags, die sind praktisch dieselben, wenn Sie vorhanden sind) anstelle von Markenbezeichnungen. Auf diese Weise wird jede git-Projekt in Ihrem repository wird in einigen Begehen, das war die Letzte am größten wenn der build ausgeführt wurde:
Wie Sie sehen, der einzige Unterschied zwischen diesen beiden manifestiert, ist die revision Werten von repository-git.
Kurze Antwort:
Müssen Sie um
manifest_static.xml
des bestimmten build.Oder, wenn Sie fehlen nur noch einige Projekt git 's, dann könnten Sie
local_manifest.xml
Datei in.repo
git, fügen Sie fehlende git' s es, und dannrepo sync
von der Wurzel des Projektarchivs. Mehr info auflocal_manifest.xml
Nutzung ist hier.git submodule
statt .repo? Scheint, dass es gebaut wurde, für dieses...repo
können mehr als nur synchronisieren. Es automatisiert uploads zu gerrit, erstellen von Zweigen, das herunterladen von änderungen, ohne zu wissen, das Ziel git, etc. Sicher, es ist nur der wrapper-Skript, und buchstäblich alles, was getan werden kann, mit der bare-git. Aber da Googlerepo
jeder klebt 🙂InformationsquelleAutor Andrejs Cainikovs
Habe ich es herausgefunden. Wenn Ihr einen tag in einer manifest-Datei (version.xml für Beispiel). Sie können repo init auf einen bestimmten tag mit dem folgenden Befehl:
InformationsquelleAutor Renaud Mathieu
Ich nicht über ausreichende Autorität, um einen Kommentar abgeben, aber ich wollte nur klarstellen Andrejs Cainikovs Antwort.
Repo übernimmt ein commit-id SHA zusätzlich zu einem ast-ref als argument für die option-b.
Als die Antworten vermuten, dass dieses argument gibt die Version des manifests, die verwendet werden soll, indem Sie die repo -, nicht eine revision in den Projekten, die das manifest verweist.
InformationsquelleAutor Rob