Reading the inscriptions#
SLOP8374 · Week 3
A commit message is a genre#
It has conventions, an audience, and a house style.
Choosing a convention is a statement about who you expect to read the history. So is choosing not to have one.
Four kinds#
- Descriptive: what changed and why
- Terse: what changed
- Opaque:
wip,stuff,. - Conventional:
feat:,fix:,chore:
Count the proportions on your dig site. The ratio is the finding.
What terse means#
Four readings of the same short message:
- Low effort
- High velocity
- Working alone, with no audience in mind
- Exhaustion
The commit message alone will not tell you which. The dates around it might.
Case study: the Linux kernel#
Torvalds’s merge commits are editorial: they summarise other people’s work, in his voice, for a reader who was not in the discussion.
Very few projects write history for a future reader. The ones that do are unmistakable.
Provenance in the trailers#
Signed-off-by: is the Developer Certificate of Origin — a legal assertion
about where code came from.
Co-authored-by:, Reviewed-by:, Reported-by: are a social graph nobody
drew on purpose.
Archaeological metadata, attached to every artefact.
Messages as time capsules#
A message carries what the diff alone cannot:
- Design decisions — why polling, and not the obvious alternative
- Known limitations — the edge case the author knew they were leaving
- Team dynamics — a change made because a reviewer asked for it
- External pressure — the hotfix written at 3am
When the messages stop carrying these, the oral tradition has already gone.
What they cannot tell you#
The conversation happened before the commit.
The argument, the rejected design, the thing someone chose not to say in writing — none of it is in the log.
This is why week 7 goes looking for people.
Required reading#
Tornhill, A. (2018) Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis. Pragmatic Bookshelf. Chapters 1–4.
Bodel, J. (ed.) (2001) Epigraphic Evidence: Ancient History from Inscriptions. Routledge. Introduction.
Before next week#
Categorise 100 commit messages from your dig site.
Find the single most diagnostic one — the message that tells you something the code cannot.