Подтвердить что ты не робот

Команда репо-сервера Android и переключающие ветки

Я чувствую, что у меня довольно хорошее понимание git, но когда дело доходит до команды repo, я теряюсь. Я читал о команде repo, но я все еще не уверен, как все это связывает.

Мой самый большой вопрос: могу ли я изменить свои текущие ветки от пряников на ICS и, возможно, вернуться?

Я вижу команду:

repo init -u https://android.googlesource.com/platform/manifest

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

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

Загрузка примерно в 8 Гб, я считаю, поэтому я не хочу, чтобы я удалял свой репо, если они разделяют код. есть ли способ переключения ветвей в репо?

4b9b3361

Ответ 1

Если вы запустите repo init второй раз с другой ветвью, вы можете просто repo sync и он не будет загружать весь исходный код еще раз.

Ответ 2

Параметр repo -b указывает ветку репозитория .repo/manifestests git, который должен быть извлечен. Файл default.xml в этом репозитории определяет, какая ветка должна быть включена в каждую из других git repositiories (projects).

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

Вы можете запустить repo forall -c 'git checkout branch_name', который будет проверять указанную ветку для всех проектов, объявленных в вашем текущем манифесте, но если есть проекты, добавленные/удаленные между пряниками и ics (которые есть), то вы не получите кода для этих проектов.

Запуск git checkan branchname в репозитории .repo/manifestests, тогда выполнение синхронизации репо может позволить вам сохранить некоторые сетевые издержки.

В противном случае, из-за ограничений репо, единственный реальный способ сделать это - сохранить две рабочие копии aosp или подготовиться к повторной синхронизации.