Синхронизировать удаленную ветку с удаленного сервера git
У меня есть зеркальное отображение всего хранилища Android в моем локальном хранилище, но с выпуском новой версии мне было трудно обновить его из апстрима.
Вот деталь:
После того, как я отразил источник Android, моя модификация находится в моей собственной ветке my-jb-mr1 на моем частном сервере. my-jb-mr1 является ответвлением от aosp jb-mr1.
- мастер
- ...
- ДБ-mr1
- мой-ДБ-mr1
Теперь KitKat выпущен на AOS, я обнаружил, что не знаю, как обновить свой частный сервер, чтобы отслеживать на AOS. Моя идея
- объединить AOS Master с моим локальным мастером репозитория, а затем нажмите на мой частный сервер
- ответвление кода на основе узла ветвления на AOSS
Но это, похоже, не работает. Поскольку ветка на aosp я хочу отслеживать, это kitkat-dev и kitkat-release. Основная ветка на aosp не включает в себя все коммиты в целевой ветке.
То, что я хочу, это синхронизировать с AOSS. После синхронизации репозиторий выглядит так:
- мастер
- ...
- ДБ-mr1
- KitKat-DEV
- KitKat-релиз
- мой-ДБ-mr1
kitkat-release и kitkat-dev должны совпадать с веткой на aosp.
Кто-нибудь может дать мне подсказку, как справиться с этим делом?
1 ответ
Обычно основная ветвь AOSP будет расширенной версией самой последней ветки релиза, но я не уверен, что это именно так, и ваш вопрос, кажется, подтверждает это. Не ожидайте, что это будет правдой все время, особенно не сразу после релиза.
Чтобы перенести ветки Kitkat на ваш сервер, начните с синхронизации рабочей области с серверов AOSP:
repo init --mirror -u https://android.googlesource.com/platform/manifest -b kitkat-dev
Обычно я предлагаю синхронизировать манифест зеркала, как описано в разделе " Использование локального зеркала" в документации, но сейчас манифест зеркала не содержит всех мерзавцев, которые были добавлены в Kitkat. Я ожидаю, что они будут добавлены в ближайшее время.
Когда синхронизация будет завершена, войдите в рабочую область и отправьте новые ветви на ваш сервер:
repo forall -c 'git push ssh://yourserver.example.com/$REPO_PROJECT aosp/kitkat-dev:refs/heads/kitkat-dev aosp/kitkat-release:refs/heads/kitkat-release
Вы также можете использовать подстановочные знаки для отправки всех ветвей AOSP на ваш сервер:
repo forall -c 'git push ssh://yourserver.example.com/$REPO_PROJECT aosp/*:refs/heads/*