Использовать андроид репо с 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 и, на самом деле, я не могу просмотреть ни один проект (хотя, может быть, это потому, что вы их удалили, вопрос, на самом деле, довольно старый, но, возможно, мой ответ может быть полезен и для других)
Не уверен, если это то, что вам нужно, но здесь это идет.
Если вы хотите отразить репо, вам следует:
Нажмите на Создать новый проект
Импортируйте это и отразите:
Таким образом, GitLab автоматически обновит зеркальное репо с апстримом.
Надеюсь, что помог!
Во-первых, я должен сказать, что клонирование всех проектов, связанных с Android, — это скорее исследовательская идея, чем что-то полезное для кого-либо еще. Возможно, было бы неплохо понять контекст немного лучше.
К сожалению, я не вижу связанных манифестов какhttps://gitlab.com/android_source/tmp
больше не существует (
По умолчаниюrepo
Команда использует определенный URL-адрес и путь для получения манифеста. Чтобы использовать манифест, вам необходимо предоставить его вrepo init
(
- Добавьте свой манифест в репозиторий — вроде бы вы это сделали.
- Использовать
-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 с использованием токена: измените выборку
https
URL-адреса для использования токена или имени пользователя/пароля
Я сам этим не пользовался, но вы также можете переопределить URL-адреса через