If you follow Linux Kernel Development, you may have heard of git. Git is a de-centralized source code management system that is famous for its speed.
Git was originally developed specifically for the Linux project by Linux founder Linus Torvalds. But other projects have begun using it. X.org, Ruby on Rails, and WINE are all listed as users. Recently, the perl project has announced that it has migrated to git, which prompted this story.
Git was created because the Linux project lost its costless license to the proprietary BitKeeper product. The company behind BitKeeper had been donating licenses to the Linux project members for the sake of publicity for its product. BitKeeper revoked this license because of the work of Andrew Trigell, a famous free/freedom software developer. Trigell is most famous for his reverse engineering work as part of the Samba project, which allows GNU systems to share files with Microsoft Windows systems.
The creation of Git, and the recent successes that it has had, is an example of what I like to call “the Tridgell effect”.
The Tridgell effect is what happens in the development community as the result of developers who are motivated by primarily by freedom. It might be summarized by the phrase:
“Developers who crave freedom over functionality will initiate projects to replace proprietary applications, even when those proprietary applications work correctly. Once these projects are initiated other members of the FOSS community, including developers who are not primarily motivated by freedom will make these projects successful”
There are many who develop freedom respecting software for reasons other than the respect of freedom. They do it because its fun, they want to have software that does things themselves, and countless other reasons. Often developers who develop freedom respecting software who have motivations other than freedom, call themselves “Open Source” developers. Torvalds himself falls into this catagory.
Lets look at the chain of events that lead to git.
- The Linux project, based on the leadership of Linus Torvalds, is satisfied with a proprietary source control product, Bitkeeper.
- Tridgell pisses off the Bitkeeper company and Linus by developing a freedom respecting implementation of a Bitkeeper client.
- The Bitkeeper company revokes the Linux projects licenses.
- After getting used to the features of Bitkeeper, Linus finds current freedom-respecting source control applications wanting.
- So he writes a new source control application, git, that has many of the features that were found in Bitkeeper, but also respects freedom.
- git becomes a powerful project in its own right, powering the source control for many important large FOSS projects.
Looking at this sequence we see several things: Tridgell rocked the boat and was unpopular for doing so. As the result of his actions, but not as a direct result of his own programming, a new freedom respecting source control system for the Linux project emerged. I believe that git could be properly termed as a “fork” or “rewrite” of the original FOSS Bitkeeper client project that Tridgell initiated. The irony here is that the “client” was trivial.
By starting a trivial development effort, but then sticking to his guns on the matter, Tridgell spawned a whole new project, substantially decreasing the communities dependence on a proprietary project.
This is why FOSS projects will win in the end. Only a few of us need to be absolutely convinced that software freedom is important. There are enough people who need software and software freedom, that “if we build it they will come”. In the end, freedom respecting software wins.