git-ents.gitmain
⌘K
foforge
commit 7aa4dbe
receive: correct the RefTransition.old rustdoc and spec-file citations

The doc claimed a stale old surfaces as a rejection, but the field is carried, never enforced; only the gate’s fast-forward check against the re-read tip refuses. Also cite receive.adoc, not a nonexistent .sdoc.

Assisted-by: Claude:claude-fable-5

Joseph D. Carpinelli · 1 month ago

Reviews

No reviews of this commit yet — record a verdict below.

Start a review

verdict

crates/ents-receive/src/lib.rs @@ -1,5 +1,5 @@ //! `receive`: the one write path every mutation frontend shares -//! (`docs/spec/receive.sdoc`). +//! (`docs/spec/receive.adoc`). //! //! This crate's single responsibility is orchestration above traits that //! already exist by the time it lands: gate policy (mandatory hosted, @@ -11,7 +11,7 @@ //! //! # Spec coverage //! -//! From `docs/spec/receive.sdoc`: +//! From `docs/spec/receive.adoc`: //! //! - `receive.unit`, `receive.shared-path` — [`receive`]: the sole //! mutation entry point, identical for every frontend; only the trait
crates/ents-receive/src/proposal.rs @@ -10,11 +10,12 @@ /// /// `old` is the frontier the *proposal* claims — what a `git push` command /// line reports as its own base, or what a local UI last read. [`crate::receive`] -/// never trusts it for admission: [`ents_gate::verify`] re-reads the actual -/// current tip itself (the same snapshot every other check uses), and a -/// mismatch between a claimed `old` and the store's real tip surfaces as an -/// ordinary [`crate::TxResult::Rejected`] once the transaction is attempted, -/// the same "someone moved this ref first" outcome a real push would see. +/// never trusts it for admission — [`ents_gate::verify`] re-reads the actual +/// current tip itself (the same snapshot every other check uses) — nor does +/// it enforce it: unlike git's `receive-pack`, which refuses a push whose +/// old-oid is stale, a stale `old` whose `new` still descends from the real +/// tip applies cleanly, and one that does not is refused by the gate's own +/// fast-forward check against the re-read tip, never by comparing this field. /// /// # Examples ///