存储与维护

物理存储变化,会改变 commit 内容吗?

pack 布局与遍历索引可以变化,可达 commit 仍保持一致。

逻辑身份与物理布局,是两个层面。

比较重排可达对象与清理有意创建的无引用 orphan。两条受控路径都以 stable commit 的 git show 输出作为不变量。

模型不声称固定字节数、对象数量、delta 深度或速度。这些都取决于具体环境。

静态模型:repack、commit-graph write 与 gc --no-prune 可能改变物理结构,git show C 保持完全一致。可删除实验库中,无引用 orphan 可被显式 prune 清理;可达的 C 保留。
预测:哪个操作会改变 stable commit 的可见内容?

模型中的维护操作都不会。实验逐字节比较维护前后的 git show C,同时分别观察 pack、graph 与 orphan 清理。