Что на самом деле делает repo init и repo sync?

Я разместил этот вопрос на энтузиастах Android, но решил, что это неправильное место, чтобы спросить, поэтому я удалил его оттуда и спросил его "снова" здесь.


Это такой вопрос noob, и простите меня, если это так, но я просто хочу четко понять основные понятия. Чтение справки РЕПО и справочной страницы команды РЕПО Google на самом деле не очень просветляет. Я понял некоторые биты из справочной страницы Google, но мне все еще нужно больше очищения.

следуя инструкциям о том, как загрузить источник android, я выполнил эти две команды на оболочке Ubuntu: (я позаботился обо всех предварительных условиях для среды.)

~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
~/android4.2.2$ repo sync -j4

после ожидания полдня для завершения загрузки РЕПО, я закончил с 19G загруженного материала в android4.2.2 директория. Так что именно только что произошло, и почему он достиг 19G, когда Google сказал, что я должен ожидать только около 8G источника файлы?

1 ответов


repo - Это скрипт-оболочка python для git, его источник Google страница определяет его как

repo-множественный инструмент репозитория Git

  1. repo init команда инициализирует РЕПО в текущем каталоге. То есть, он загружает последний источник РЕПО и manifest.xml файл, описывающий структуру каталогов репозиториев git, и сохраните все это в .repo подкаталог в текущем каталоге. В ваш случай, вы использовали необязательный -b аргумент, который используется для выбора ветви для проверки. По умолчанию (т. е. когда -b аргумент не используется), Используется главная ветвь.

  2. repo sync обновляет рабочее дерево до последней версии. То есть он синхронизирует локальные каталоги проектов с удаленными репозиториями, указанными в файле манифеста. Если локальный проект еще не существует, он будет клонировать новый локальный каталог из удаленного репозитория и настроить отслеживание ветвей, указанных в манифесте. Если локальный проект уже существует, он обновит удаленные ветви и перебазирует все новые локальные изменения поверх новых удаленных изменений. -j аргумент используется для задания количества параллельных заданий для выполнения. Значение по умолчанию может быть определено в манифесте, а также может быть переопределено в командной строке, как в вашем случае.

почему он достиг 19G, когда Google сказал, что я должен ожидать только около 8G источника файлы?

это должно быть потому, что кроме исходных файлов, вы получите всю историю Android с начала время :)

надеюсь, что это помогает.