存储与维护
物理存储变化,会改变 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 清理。