Skip to content
zit Erratum — draft-fossil-submanifests-00 §6.3
Login

Erratum — draft-fossil-submanifests-00 §6.3

Document draft-fossil-submanifests-00
Section 6.3 — Parameter Selection and Pinning (the "current check-in" the analysis reads)
Type Technical (the term is undefined for a repository with no checkout)
Status Applied in draft-fossil-submanifests-00 (2026-10-19)
Reported 2026-10-18
Submitter Dan Mestas
Found via Implementing repository-level enable in go-libfossil, which has no checkout to read

1. Summary

§6.3 analyzes "the canonical file-entry list of the repository's current check-in -- the parent of the next commit". A server, or a library caller enabling at repository level, has no checkout and so no parent of a next commit. The draft gives such a caller nothing to analyze, and "if no current check-in exists, automatic selection has no result" would refuse every repository-level enable. go-libfossil analyzes the tip of the main branch; the draft should define the term that way.

2. The text in error

§6.3: "To select k automatically, the implementation analyzes the canonical file-entry list of the repository's current check-in -- the parent of the next commit -- resolved once at the start of the analysis. If no current check-in exists, automatic selection has no result."

3. What the implementations do

zit enables from a checkout and analyzes the check-in the checkout is on (submanifestNamesFromCheckout in src/cmd/checkout.zig); it has no repository-level enable. go-libfossil's repository-level enable analyzes the tip of the main branch.

4. Corrected text

Replace the two sentences with:

To select k automatically, the implementation analyzes the canonical file-entry list of the repository's current check-in, resolved once at the start of the analysis. In a checkout, the current check-in is the one the checkout is on, the parent of the next commit. With no checkout, it is the newest leaf of the main branch, by the leaf rule of [FossilRepoState]. If the repository has no check-in, automatic selection has no result.

5. Observable consequence of the uncorrected text

Two implementations enabling the same repository without a checkout analyze different check-ins, or one refuses, and the pinned values can differ.

6. Implementations

zit's behaviour is the checkout case and is unchanged. go-libfossil already analyzes the main-branch tip.