The commit is a call. The record is the store. Git is an archive.
Carbon SCM is a source-control model in which the commit is a call, the record is the store, and git is an archive rendered from it.
Normative and self-contained: an implementation built from it alone is a conforming Carbon SCM, and Carbon Forge is its first implementation. Carbon SCM↗
Every revision written in a changeset is sealed: a hash over its content, its metadata, its actor, its time and its predecessor’s seal, optionally signed with Ed25519.
The changeset’s own seal is the last write of its transaction, over every member revision.
A snapshot’s seal binds its manifest digest and the seal of the snapshot before it.
A verifier walks the chain newest first and reports valid, checked, where it broke, and whether every link was signed.
Bytes are named by their SHA-256, digests are taken over canonical JSON, and every revision, changeset and snapshot is sealed and can be verified link by link.
A code tree is a manifest of files per revision, written whole or patched inside a file, and read on the server by diff, semantic diff, blame, grep and materialize.
A changeset is atomic: every revision, its seal, its audit rows and its hook events commit in one transaction, or none of them, and a protected trunk moves only by a lane’s landing.
A lane is a flat, ordered list of patches over the trunk, composed when read by replaying its patches, checked for conflicts, compacted, and landed as one changeset.
A snapshot is a sealed, chained manifest of every entity’s revision and every open lane’s patches at one instant, and a cut names one snapshot forever.