2016-04-04 12 views
2

Vor kurzem entschied ich mich, in die Android Open Source Project Welt einzutauchen. Dies ist, wie ich mein Leben mit AOSP bildest:Wie wird die Reposynchronisation korrekt ausgeführt, nachdem AOSP manifestiert wurde?

Um in die AOSP-Welt zu graben, muss ich meine Hände schmutzig machen und Code in den Projekten ändern. Und ich werde es auf drei verschiedenen Computern tun, also muss ich meine Arbeit in Remote-Git-Repositories speichern. Also muss ich das AOSP-Manifest in meinem eigenen GitHub-Account abzweigen und davon arbeiten.

Say später versuche ich mit dem Rahmen Projekt zu spielen, dann muß ich auch dieses Projekt in mein eigenes GitHub Konto Gabel:

<project path="frameworks/base" name="platform/frameworks/base" groups="pdk-cw-fs,pdk-fs" /> 

Idealfall, wenn ich eine lokale Repo-Synchronisierung durchführen, die Gerüste/Das Basisprojekt wird von meinem eigenen GitHub-Account geholt und alle anderen Projekte werden von Google Git Repo geholt.

Hier ist, was ich in Aktion tat:

Was ich will, von dort mit dem AOSP manifest git Repo auf meine Github und Arbeit zu tun ist, gabeln. Dann ich:

repo sync -u [email protected]:my_own_github_account/platform_manifest.git 

Dann mache ich:

repo sync 

jedoch erhielt ich eine Menge Fehler in der Konsole wie:

fatal: remote error: 
    my_own_github_account/platform/external/libopus is not a valid repository name 
    Email [email protected] for help 

Es scheint, Repo werden die Projekte übernehmen wird kommen von der gleichen Basis wie das Manifest-Projekt. Ich bin mir nicht sicher, wie man eine Reposynchronisation mit einem gegabelten Manifest durchführt.

Außerdem bin ich nicht sicher, ob die Art, wie ich versuchte, mit AOSP zu arbeiten, albern oder unprofessionell ist. Wenn es so ist, werde ich es schätzen, wenn Sie mich auf den richtigen Weg bringen können. Danke im Voraus.

Antwort

3

Eigentlich fand ich diesen Beitrag hier fast perfekt beantwortet meine Frage: https://www.primianotucci.com/blog/fork-android-on-github.

Der Grund, warum ich nicht repo sync tun kann, ist, weil diese Linie in Repo-Datei:

<remote name="aosp" 
      fetch=".." 
      review="https://android-review.googlesource.com/" /> 

Die beiden Punkte fetching Projekte in Bezug auf die Repo-Manifest Projektmittel selbst. Deshalb Repo versucht, von my_own_github_account zu synchronisieren

Dann habe ich es zu

<remote name="aosp" 
      fetch="https://android.googlesource.com" /> 

Dann wird das Repo-Sync funktioniert.

Was wäre, wenn ich für ein bestimmtes Projekt von meinem eigenen GitHub-Konto synchronisieren möchte?

Natürlich müssen Sie dieses Projekt auf Ihr eigenes GitHub-Konto spiegeln. Ändern Sie dann die Manifest-Datei wie folgt aus:

Fügen Sie diese Zeile Datei zu manifestieren:

<remote name="origin" fetch="https://github.com/my_own_github_account" /> 

Der Name ist der Remote-Abruf Quelle, die Sie für Ihre eigene Sub-Projekt verwenden möchten.

Dann hinzufügen:

<project path="frameworks/base" name="platform/base" 
      remote="origin" revision="your_default_revision" /> 

Beachten Sie, dass, um die Standard-Fernabruf Quelle Sie remote="origin" hinzufügen müssen außer Kraft zu setzen.

Dann, wenn Sie repo sync tun, holt Repo Framework/Basis von Ihrem eigenen GitHub-Konto und holen Sie andere Projekte von Google-Quelle.

Verwandte Themen