【问题标题】:Why does git-sizer say my files are 10 times the size of what my Mac says the entire directory size is?为什么 git-sizer 说我的文件大小是我的 Mac 所说的整个目录大小的 10 倍?
【发布时间】:2020-01-27 00:18:02
【问题描述】:

我克隆了 express 存储库并使用 git-sizer 运行命令 git-sizer --verbose 而不对存储库进行任何更改。我看到它列出了 blob 的总大小为 120 MiB。但是,当我通过右键单击我的 gui 中的 express 目录来查看我的 mac 上整个 express 目录的大小时,右键单击并选择 get info 它说整个目录在磁盘上是 10.6 MB 和 11.4 MB。

如果仅 blob 的总大小是其 10 倍,这怎么可能?

【问题讨论】:

  • git-sizer 是开源的,用 go 编写。克隆 repo,set a breakpoint,并弄清楚它在做什么。这将为您提供进行理性比较的基础,并很有可能回答您的问题。
  • 在不确切知道git-sizer 的情况下很难确定,但请注意,Git 以压缩(有时是高度压缩)形式存储其内部对象,因此.git 通常小于工作树。

标签: git macos


【解决方案1】:

最可能的解释是,如果您使用的工具是计算每个 BLOB 的完整大小并将它们全部加起来...这可能是一个有用的指标,但不会反映在(或反映) 存储库中实际消耗的磁盘空间。

BLOBs 的数据可能出现在磁盘上的两个位置:

对于作为当前签出提交的TREE 一部分的BLOBs,工作目录中有一个文件。该文件BLOB 所代表的内容,因此它的大小可能是sizer 实用程序报告的大小;但这里只有当前版本的文件(不是所有的历史资料)。

每个BLOB 都在数据库中。但这些都是压缩的,也可能会减少到增量,因此它们消耗的物理空间可能远小于单个 BLOBs 大小的总和。

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多