I was invited to take part in “The Unbelievable Knuth” at SPA 2019, a riff on Radio 4’s The Unbelievable Truth. The aim of the game is to present on a topic that’s entirely false except for five truths that you must smuggle past the rest of the panel.
I chose the topic of version control, and I figured I’d publish my transcript given the love and care I took crafting some of the jokes.
Version control is a concept that transcends time and reality itself.
In the beginning, there was an initial commit.
What is the book of Genesis if not the first revision history? “Decouple heaven and earth”, “Create animals”, “Fix bug in mankind”. We know that the final story would have been to design a web API for the Universe, as in the Bible we are told that the seventh day was the day of REST.
The first mortal users of version control were the neanderthals, who would describe changes to their software by painting symbols on the walls of caves. They called it the Cave Versioning System, better known by the acronym CVS.
These techniques were eventually adopted by the mammoths they hunted, although they preferred to ignore branches in favour of trunk-based development. So ubiquitous was CVS that on November 19 1990, CVS version 1.0 was submitted to UNESCO as a piece of historic software.
Methodologies based on source control also started to take root in the field of music, with composers were looking for a new way to write their orchestral compositions. Prior to this, Elgar wrote one of his concertos on a napkin1, and Rachmaninov would write out an entire composition from scratch rather than soil his sheet music with a correction. Replacing these quirks with software gave us the origin of the name Rational Team Concert.
How can one talk about version control without talking about Linus Torvalds and git?
When he was a teenager, Linus would walk 6 miles to school and back everyday as his parents didn’t have a car. He tried to replicate this experience in the Linux kernel, and to this day users also have problems with missing drivers.
Linus replaced Panvalet with git in the Linux kernel codebase as a result of being criticised for using a proprietary VCS to host the open-source project2. The name git comes from the German word gitter, meaning grid or rails3, foreshadowing its ubiquity in Ruby web development.
In a story paralleling the original creation myth, some companies have even gone as far as to make new version control systems in their own image - Facebook created Fable to replace Mercurial, Google replaced Perforce with Piper4, and BT’s custom checkouts require you to wait in a queue for 45 minutes.
A desired property of a version control system is the ability to uniquely identify a change - git claims that seven characters are enough to uniquely identify a single commit, although the Linux kernel is now so large that it requires fifteen characters instead.
Brevity is much valued by users of version control, as you can tell by their love of acronyms - there are version control systems called ALF, BVS, SVK5, DTF, MIV, NCIS, NCIS Miami, PFJ, YYZ, and ZFS.
This is true, but the proprietary VCS was BitKeeper not Panvalet. ↩
The translation is true, but it’s not the origin of the name