Использовать андроид репо с github или gitlab

Я пытаюсь отразить каждое андроид репо на свой аккаунт на gitlab. После того, как я импортировал ВСЕ репозитории, я попытался использовать git-repo (инструмент репо от Google) для сборки Android из исходного кода.

Я изменил эти строки в моем манифесте default.xml:

<remote  name="aosp" fetch="https://android.googlesource.com" review="android-review.googlesource.com" revision="refs/tags/android-5.1.1_r37" />

к этому:

<remote name="aosp" fetch="https://gitlab.com/android_source/" review="android-review.googlesource.com" revision="refs/tags/android-5.1.1_r37"/>

Я также изменил название каждого проекта. например:

<project path="dalvik" name="platform/dalvik" groups="pdk-cw-fs" remote="aosp"/>

к этому:

<project path="dalvik" name="platform_dalvik" groups="pdk-cw-fs" remote="aosp"/>

Теперь вот моя проблема. когда я запускаю команду репо

repo sync

Я получаю такие ошибки:

Fetching projects:   0% (1/541)  Fetching project platform_prebuilts_ndk.git
fatal: Couldn't find remote ref refs/tags/android-5.1.1_r37
fatal: Couldn't find remote ref refs/tags/android-5.1.1_r37
error: Cannot fetch platform_prebuilts_ndk.git

error: Exited sync due to fetch errors

В чем дело??

Вы можете увидеть default.xml и изменить его.

РЕДАКТИРОВАТЬ: Я нашел решение, но мне не нравится. Я изменил это:

<remote name="aosp" fetch="https://gitlab.com/android_source/" review="android-review.googlesource.com" revision="refs/tags/android-5.1.1_r37"/>

к этому:

<remote name="aosp" fetch="ssh://git@gitlab.com/android_source/" review="android-review.googlesource.com" revision="refs/tags/android-5.1.1_r37"/>

Теперь я могу получить с помощью инструментов git_repo. Но это странно. другие люди должны иметь возможность клонировать мой репо.

3 ответа

Если вы можете клонировать через ssh, а не через https, вероятно, потому что вы настраиваете проекты GitLab как частные, а не публичные

Я пытаюсь просмотреть вашу личную группу gitlab и, на самом деле, я не могу просмотреть ни один проект (хотя, может быть, это потому, что вы их удалили, вопрос, на самом деле, довольно старый, но, возможно, мой ответ может быть полезен и для других)

Не уверен, если это то, что вам нужно, но здесь это идет.


Если вы хотите отразить репо, вам следует:

  1. Нажмите на Создать новый проект

  2. Импортируйте это и отразите:

Зеркальное репо на GitLab

Таким образом, GitLab автоматически обновит зеркальное репо с апстримом.

Надеюсь, что помог!

Во-первых, я должен сказать, что клонирование всех проектов, связанных с Android, — это скорее исследовательская идея, чем что-то полезное для кого-либо еще. Возможно, было бы неплохо понять контекст немного лучше.

К сожалению, я не вижу связанных манифестов какhttps://gitlab.com/android_source/tmpбольше не существует (amonthedeamon упомянулответ amonthedeamon. об этом в предыдущем ответе).

По умолчаниюrepoКоманда использует определенный URL-адрес и путь для получения манифеста. Чтобы использовать манифест, вам необходимо предоставить его вrepo init(ссылка) команда.

  1. Добавьте свой манифест в репозиторий — вроде бы вы это сделали.
  2. Использовать-uи необязательно-mи-bаргументы, указывающие на манифест

В вашем случае это будет

      repo init -u https://gitlab.com/android_source/tmp.git
repo sync 

Затем,repo syncбудет просматривать проекты, запущенные с помощью удаленного URL-адреса. Я предполагаю, что вы там, но я не уверен.

Предполагая, что вы клонировали все репозитории вandroid_source, теперь они должны быть доступны через ваш префикс githttps://gitlab.com/android_source/. Git теперь попытается клонировать изhttps://gitlab.com/android_source/{projectname}, который, похоже, не работает.

Еслиssh://git@gitlab.com...работает иhttps://gitlab.com...не, я полагаю, это нормальноgit cloneне работает для URL. В текущей версии git вам будет предложено ввести имя пользователя и пароль. Имея учетные данные , вы сможете хранить эту информацию.

Есть пара предложений

  • Переключитесь на более свежую версию git, поддерживающую аутентификацию https.
  • Сделайте свои проекты общедоступными — см.
  • Изменитьfetchв ваших манифестах на префикс, который вам подходит
            - <remote name="aosp" fetch="https://gitlab.com/...
    + <remote name="aosp" fetch="ssh://git@gitlab.com/...
    
    Обратите внимание, что это может не сработать для других, если проект не является общедоступным.
  • Аутентификация через https с использованием токена: измените выборкуhttpsURL-адреса для использования токена или имени пользователя/пароля

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

Другие вопросы по тегам