repo sync aosp android-4.3_r1, размер каталога .repo достигает 70G

Я загрузил исходный код Android с такими командами, как:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.3_r1 --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo sync

Размер исходного кода android-4.3_r1 составляет около 7G. Но размер каталога .repo достигает 70G. размер AOSP

Войдите в каталог .repo и обнаружите, что размер каталога объектов проекта составляет 70G. размер .repo

Почему каталог репо такой огромный? Для чего используется каталог объектов проекта?


person CN.Hu    schedule 05.07.2018    source источник


Ответы (1)


It's OK.

.repo/project-objects содержит объекты Git

При использовании repo объекты Git не сохраняются непосредственно в репозитории. Если вы посмотрите на каталог .git одного из репозиториев вашего рабочего пространства, вы увидите много символических ссылок на .repo/project-objects.

Например:

$ cd bionic/.git
$ la
-rw-rw-r-- 1 hugo hugo   41 juin  22 15:24 [2]  HEAD
lrwxrwxrwx 1 hugo hugo   38 juin  22 15:24 [3]  config -> ../../.repo/projects/bionic.git/config
lrwxrwxrwx 1 hugo hugo   55 juin  22 15:24 [4]  description -> ../../.repo/project-objects/aosp/bionic.git/description
lrwxrwxrwx 1 hugo hugo   49 juin  22 15:24 [5]  hooks -> ../../.repo/project-objects/aosp/bionic.git/hooks
-rw-rw-r-- 1 hugo hugo 440K juil.  3 15:42 [6]  index
lrwxrwxrwx 1 hugo hugo   48 juin  22 15:24 [7]  info -> ../../.repo/project-objects/aosp/bionic.git/info
lrwxrwxrwx 1 hugo hugo   36 juin  22 15:24 [8]  logs -> ../../.repo/projects/bionic.git/logs
lrwxrwxrwx 1 hugo hugo   51 juin  22 15:24 [9]  objects -> ../../.repo/project-objects/aosp/bionic.git/objects
lrwxrwxrwx 1 hugo hugo   43 juin  22 15:24 [10] packed-refs -> ../../.repo/projects/bionic.git/packed-refs
lrwxrwxrwx 1 hugo hugo   36 juin  22 15:24 [11] refs -> ../../.repo/projects/bionic.git/refs
lrwxrwxrwx 1 hugo hugo   52 juin  22 15:24 [12] rr-cache -> ../../.repo/project-objects/aosp/bionic.git/rr-cache
lrwxrwxrwx 1 hugo hugo   39 juin  22 15:24 [13] shallow -> ../../.repo/projects/bionic.git/shallow
lrwxrwxrwx 1 hugo hugo   47 juin  22 15:24 [14] svn -> ../../.repo/project-objects/aosp/bionic.git/svn

Еще одна интересная вещь, на которую стоит обратить внимание, это два шага в repo sync:

  • первый — выборка, во время которой Git-объект будет загружен с сервера в .repo/project-objects

  • второй - этап проверки, когда файлы копируются из .repo/project-objects в рабочий каталог.

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

person Hugo y    schedule 05.07.2018
comment
Большое спасибо. Есть ли способ уменьшить размер каталога .repo? - person CN.Hu; 09.07.2018
comment
Вы можете взглянуть на этот вопрос: stackoverflow.com/questions/26761114/ - person Hugo y; 09.07.2018