android-4.3_r1的repo sync aosp,.repo目录大小达到70G
repo sync aosp of android-4.3_r1, the size of the .repo directory reach 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。
进入.repo目录,发现有一个project-objects目录,大小为70G。
为什么repo目录这么大?
项目对象目录有什么用?
没关系。
.repo/project-objects
包含 Git Objects
当您使用 repo
时,Git 对象不会直接存储在存储库中。如果您查看工作区存储库之一的 .git
目录,您会看到很多符号 link 到 .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
中的两个步骤:
第一个是fetch,期间会把Git对象从服务器下载到.repo/project-objects
第二个是检出阶段,文件从 .repo/project-objects
复制到工作目录
这意味着如果你删除除 .repo
之外的所有目录并再次同步,获取阶段将非常快(取决于远程上的新修改)并且回购同步将主要复制到结帐阶段的工作目录。
我已经下载了 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目录,发现有一个project-objects目录,大小为70G。
为什么repo目录这么大? 项目对象目录有什么用?
没关系。
.repo/project-objects
包含 Git Objects
当您使用 repo
时,Git 对象不会直接存储在存储库中。如果您查看工作区存储库之一的 .git
目录,您会看到很多符号 link 到 .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
中的两个步骤:
第一个是fetch,期间会把Git对象从服务器下载到.repo/project-objects
第二个是检出阶段,文件从
.repo/project-objects
复制到工作目录
这意味着如果你删除除 .repo
之外的所有目录并再次同步,获取阶段将非常快(取决于远程上的新修改)并且回购同步将主要复制到结帐阶段的工作目录。