Native Git objects / exact local fixture / four identity regimes
Same tree.
Different past.
A final filesystem state does not uniquely identify the commit that carries it or the ancestry that produced it. Change the comparison rule without changing a single Git object.
Canonical result
tree(A2) == tree(B2)commit(A2) != commit(B2)ancestry(A2) != ancestry(B2)Fixture...
Git objects...
Histories...
Experiments...
Object formatsha1 / independently checked
Interactive comparison
One fixture, multiple legitimate identities
Experiment and regime controls select a frozen result. They never rewrite the underlying object IDs.
LEFT HISTORY
...
...Left identity...
Right identity...
...
...RIGHT HISTORY
...
...Regime matrix
The answer changes because the question changes
Every row compares the same selected pair.
Evidence boundary
What this case establishes
The fixture uses real Git object construction and native IDs. It establishes state/history separation inside a bounded deterministic repository. It does not claim that commit ancestry is causality, and it introduces no Historical Load value.
- Fixture code fixes actors, messages, timestamps, trees, and parent order.
- Git writes every blob, tree, and commit through plumbing commands.
- An independent implementation recomputes the SHA-1 object framing.
- The browser verifies the exact committed artifact SHA-256 before rendering.