Mercurial Ate Our Breakfast, But We Don't Mind
Before we begin, here’s a spoiler: Tim and I independently invented revsets, but Matt Mackall put them in Mercurial 1.6 before we had told anyone about it, so we can’t rightfully proclaim our genius to the internet. Fortunately, that’s not the whole story.
Two Guys and a Database Course
In the fall of 2009, Tim and I were taking a course in database systems. As the only undergraduate students in the class, we didn’t have a good concept of what goes into a good project for a course consisting primarily of discussions about research papers, especially since our usual modus operandi for most course projects is to point a fire hose of code at an implementation idea. For a couple of weeks, we were lost. Then one day Tim said to me, “Steve, what if you could query your version control repository like a database?” Suddenly we had a thought experiment and a series of course projects that will last at least into the next year.

