我已经使用以下命令下载了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。
为什么repo目录如此之大? 项目对象目录使用什么剂量?
答案 0 :(得分:1)
没关系。
.repo/project-objects
包含Git Objects
使用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
以外的所有目录并再次同步,则获取阶段将非常快(取决于远程服务器上的新修改),并且回购同步将大部分复制到工作目录中在结帐阶段。