Уменьшите размер исходного каталога репозитория Android.repo

Я переключался между несколькими ветвями исходного кода Android с помощью таких команд, как:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
repo sync

Последний тег android-5.0.0_r2. Я заметил, что мой каталог .repo теперь имеет размер 30 ГБ. Это ожидаемый размер? Если нет, то я предполагаю, что у меня есть история из других ветвей/тегов, которые я использовал, хранящихся в каталоге .repo.

Есть ли способ уменьшить размер каталога .repo? Я хотел бы ограничить только источник/объекты/изображения/и т.д. Мне нужна конкретная ветка, над которой я работаю. Для меня важнее место для жесткого диска, чем время загрузки.

Я вижу, что <.22 > используется в репозиториях .git, но в этом случае это не работает. Есть ли эквивалент для репозиториев .repo?

Примечание. Я попробовал repo prune, но это не уменьшило размер каталога .repo.

Ответ 1

Флаг -c, похоже, больше не поддерживается, но вот что вы можете сделать.

На момент написания статьи, repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 создает 33GB ценность файлов.

Добавление --depth=1 уменьшает его до 21 ГБ.

Добавление --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5 для исключения устройств и компонентов, которые вам не интересны, уменьшает это до 19 ГБ.

Только для хранения вы можете удалить извлеченные файлы для каждого репозитория .git внутри .repo/, чтобы сэкономить еще больше места, но я не уверен, как это сделать script. Если вы это сделали, repo sync будет проверять "отсутствующие" файлы, если это необходимо.

Для справки моя полная командная строка была repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r5 --depth=1 --groups=all,-notdefault,-device,-darwin,-x86,-mips,-exynos5,mako
поэтому это дерево будет работать только для Nexus 4. Я еще не пытался построить из этого дерева, но нет причин, по которым он не будет работать.

Вы также можете удалить проекты, которые вы не используете, с указанием локального манифеста или даже работать из сжатой файловой системы, такой как btrfs, с правильными параметрами монтирования, но я "неуверенность в производительности".

Ответ 2

Неподтвержденный, но я думаю, вы можете использовать переключатель -c только для загрузки веток, которые вам в настоящее время нужны.

С этим флагом репо будет загружать только ревизию (ветвь), указанную в манифесте, а не все ветки, которые находятся на удаленном сервере. Это, таким образом, спасет нам довольно много места, и снова потребуется меньше времени для загрузки.

Источник и дополнительная информация: http://xda-university.com/as-a-developer/repo-tips-tricks