代码之家  ›  专栏  ›  技术社区  ›  CN.Hu

android-4.3_r1的repo-sync aosp,.repo目录大小达到70g

  •  1
  • CN.Hu  · 技术社区  · 7 年前

    我下载了Android源代码,命令如下:

    repo init-u https://aosp.tuna.清华.edu.cn/platform/manifest-b android-4.3_r1--repo url=git://codeaurora.org/tools/repo.git--repo branch=caf stable
    回购同步
    

    Android-4.3_R1源代码的大小约为7g。 但是.repo目录的大小达到了70g。

    输入.repo目录,发现有一个项目对象目录sizeof 70g。

    为什么回购目录这么大? 项目对象目录的用途是什么?

    Android-4.3_R1源代码的大小约为7g。 但是.repo目录的大小达到了70g。 size of AOSP

    输入.repo目录,发现有一个项目对象目录sizeof 70g。 size of .repo

    为什么回购目录这么大? 项目对象目录的用途是什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hugo y    7 年前

    没关系。

    .repo/project-objects 包含 Git Objects

    当你使用 repo ,git对象不直接存储在存储库中。如果你看一下 .git 您将看到许多符号链接到工作区的一个存储库的目录 .repo/项目对象 .

    例如:

    $ 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对象。

    • 第二个阶段是签出阶段,从该阶段复制文件 .repo/项目对象 到工作目录

    这意味着如果删除除 .repo 再次同步获取阶段将非常快(取决于远程服务器上的新修改),并且在签出阶段,repo-sync将主要执行复制到工作目录的操作。