2016-04-04 3 views
2

Недавно я решил погрузиться в мир Android Open Source Project. Вот как я рисую свою жизнь с AOSP:Как правильно запустить синхронизацию репо после разворачивания манифеста AOSP?

Чтобы копаться в мире AOSP, мне нужно, чтобы мои руки были грязными и модифицировали код в проектах. И я собираюсь сделать это на трех разных компьютерах, поэтому мне нужно сохранить свою работу в удаленных репозиториях git. Поэтому мне нужно разблокировать манифест AOSP в моей учетной записи github и работать с этим.

Say позже я пытаюсь играть с проектом рамок, то мне нужно раскошелиться этот проект в свой собственный счет GitHub, а также:

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

В идеале, когда я синхронизации локального репо, каркасы/базовый проект будет получен из моей учетной записи github, и все другие проекты будут получены из google git repo.

Вот что я сделал в действии:

То, что я хочу сделать, это разветвление AOSP манифеста GIT репозиторий в моей GitHub и работать оттуда. Тогда я:

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

Тогда я:

repo sync 

Однако я получил много ошибок в консоли, как:

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

кажется репо возьмет на себя проекты придут с той же базы, что и манифестный проект. Я не уверен, как правильно выполнить репо-синхронизацию с раздвоенным манифестом.

Кроме того, я не уверен, что, как я пытался начать работу над AOSP, это глупо или непрофессионально. Если так, я буду признателен, если вы можете указать мне на правильный путь. Заранее спасибо.

ответ

3

На самом деле я нашел это сообщение здесь, почти полностью ответил на мой вопрос: https://www.primianotucci.com/blog/fork-android-on-github.

Причина, почему я не могу сделать синхронизацию репо из-за этой строки в файле репо:

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

Две точки означает выборку данных проектов по отношению к репо манифеста самого проекта. Вот почему репо пытается синхронизироваться с my_own_github_account

Тогда я изменил его на

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

После синхронизации репо работает должным образом.

Что делать, если для конкретного проекта я хочу синхронизировать свою учетную запись github?

Конечно, вам нужно отразить этот проект в своей учетной записи github. Затем измените файл манифеста, как это:

Добавьте эту строку в файл манифеста:

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

Название является удаленным источником Fetching вы хотите использовать для своего собственного подпроекта.

Затем добавьте это:

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

Обратите внимание, что для того, чтобы переопределить сгрузки источника необходимо добавить remote="origin" по умолчанию.

Затем, когда вы делаете repo sync, репо будет получать фреймворк/базу из вашей собственной учетной записи github и извлекать другие проекты из источника google.

Смежные вопросы