Синхронизировать удаленную ветку с удаленного сервера git

У меня есть зеркальное отображение всего хранилища Android в моем локальном хранилище, но с выпуском новой версии мне было трудно обновить его из апстрима.

Вот деталь:

После того, как я отразил источник Android, моя модификация находится в моей собственной ветке my-jb-mr1 на моем частном сервере. my-jb-mr1 является ответвлением от aosp jb-mr1.

  • мастер
  • ...
  • ДБ-mr1
  • мой-ДБ-mr1

Теперь KitKat выпущен на AOS, я обнаружил, что не знаю, как обновить свой частный сервер, чтобы отслеживать на AOS. Моя идея

  1. объединить AOS Master с моим локальным мастером репозитория, а затем нажмите на мой частный сервер
  2. ответвление кода на основе узла ветвления на 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/*
Другие вопросы по тегам