Skip to main content

Module notes

Module notes 

Source
Expand description

Storage: benchmark results as git notes under refs/notes/tak.

Why notes rather than an orphan branch or a committed file:

  • The data is about a commit, which is exactly what notes are for.
  • cat_sort_uniq resolves concurrent writers with no custom merge driver.
  • The notes tree is keyed by commit SHA as path names and does not reference the annotated commits, so a single shallow fetch of this one ref returns the entire history without cloning the repository — measured at 36ms / 124K for 100 commits × 6 benchmarks, with zero project commit objects transferred. That property is what makes a hosted dashboard cheap.

All network operations shell out to git on purpose. actions/checkout sets up auth via http.extraheader, and users have credential helpers, SSH agents and corporate proxies; reimplementing any of that is a trap. Local object access can move to gix later without changing this boundary.

Constants§

NOTES_REF

Functions§

append
Append records to commit’s note locally, preserving anything already there.
fetch
Pull the notes ref from remote.
install_refspec
Teach plain git fetch about the notes ref, so the data is visible to users who never run tak. A convenience, not load-bearing — every tak read path fetches for itself.
push
Push the notes ref, resolving races against other CI jobs.
read
Read every record attached to commit, after refreshing from the remote.
rev_parse
Resolve a revision to a full SHA.