Уменьшите размер исходного каталога репозитория 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