The Days Git Was Built
It is April 2005. The Linux kernel has lost its version control tool, and according to Jonathan Corbet of LWN, as quoted by ZDNet, kernel development had "to a great extent, come to a halt" for those few weeks. Torvalds had spent time trying to mediate between Andrew Tridgell and Larry McVoy. "A few weeks (months? It felt that way)," he said later, but it didn't work.
The man who hated version control
The irony is that Torvalds had no interest in the subject. Ten years later, in an interview with the Linux Foundation, he said he had felt source control management was "just about the least interesting thing in the computing world" and that he "hated all SCM's with a passion." But BitKeeper had changed his view: having a local copy of the repository and distributed merging was "a big deal". In his view it made one of the main problems of these tools go away: the politics around "who can make changes." When everyone has their own repository, that fight becomes meaningless.
He didn't want to go back to the pre-BitKeeper days, and he didn't think the existing free tools were good enough. His performance requirements, he said, were "not even remotely satisfied" by what was available, and he worried about the integrity of the code and the whole workflow. So he decided to write his own.
A day to self-hosting, about ten days to the kernel
The Linux Foundation later put it this way: Torvalds "disappeared over the weekend to emerge the following week with Git." He gave a more precise account himself. It took about a day for Git to become "self-hosting", able to record its own changes using itself. And it came together in "just about ten days or so", when he made his first kernel commit using Git.
But he stressed it wasn't "some kind of mad dash of coding". Most of the work was done during the day, though the history shows a few midnight entries and a couple at 2 a.m. The trick, he said, was not the coding but coming up with how it organises the data, ideas he had been mulling over for a while. He had seen the problems others had and knew what he wanted to avoid.
The goals, as the official Git book lists them, were clear: speed, simple design, strong support for thousands of parallel branches, fully distributed, and able to handle large projects like the Linux kernel efficiently.
A name to laugh at
The very first commit in the Git repository, still available today, contains a README that opens with: "GIT - the stupid content tracker". It goes on to say that "git" can mean anything, depending on your mood. In British slang the word describes an unpleasant person, a joke Torvalds knowingly made at his own expense.
Handing over
The most important decision of this part came a few months later. On 26 July 2005, Torvalds announced on the Git mailing list that he had handed maintenance to Junio Hamano, one of the most active contributors. "Junio was the obvious choice," he wrote, explaining that he wasn't dropping Git but preferred working on it as a contributor rather than tracking everything. Hamano has maintained Git ever since.
The turning point
The turning point was a combination of two decisions: building a tool quickly on ideas that had already matured, and then stepping aside at the right moment. Torvalds solved his urgent problem, then gave the tool to someone who could grow it with full focus.
Lesson for businesses
Crisis can drive the best innovation, provided you have already thought about the problem. Torvalds' speed came from experience, not haste.
Second, design your data structures before you write code. By his own account, that was the real trick.
Third, good leaders know when to delegate. A founder who keeps everything in hand becomes the bottleneck to growth.
Next: Git was powerful but hard. One veteran kernel developer even joked that Git was "expressly designed to make you feel less intelligent than you thought you were." A few people decided to make it easy for everyone.
منابع / Sources
- "10 Years of Git: An Interview with Git Creator Linus Torvalds", Linux.com / The Linux Foundation, Jennifer Cloer, 2015-04-06 — https://www.linux.com/news/10-years-git-interview-git-creator-linus-torvalds/
- "Tridgell speaks out in BitKeeper war (Corbet quote)", ZDNet, 2005-04-20 — https://www.zdnet.com/article/tridgell-speaks-out-in-bitkeeper-war/
- "A Short History of Git", Pro Git book, git-scm.com, n.d. — https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git
- "Initial revision of "git", the information manager from hell (commit e83c516, README)", git/git on GitHub, 2005-04-07 — https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290
- "Meet the new maintainer..", LWN.net (Torvalds' git list post), 2005-07-26 — https://lwn.net/Articles/145123/