A dispute between a prominent open-source developer and the maker of the software used to manage Linux kernel development has forced Linux creator Linus Torvalds to embark on a new software project of his own, in addition to the Linux kernel. The new effort, called "git," was started last week after a licensing dispute forced Torvalds to abandon the proprietary BitKeeper software he had been using to manage Linux kernel development since 2002.
The conflict touches on the difference between open-source developers who view Linux's open, collaborative approach as a technically superior way to build software and free software advocates, who see the ability to access and change source code as fundamental freedom.
As a result of the dispute, Torvalds is now working with other Linux developers to create software that will be able to quickly make changes to 17,000 files that make up the Linux kernel, the central component of the Linux operating system. "Git, to some degree, was designed on the principle that everything you ever do on a daily basis should take less than a second," Torvalds said in an e-mail interview.
The Linux developers will use git to replace BitKeeper, which is developed by BitMover Inc., based in South San Francisco, California.
Though BitMover allowed Linux developers to use a free version of its software for kernel development, the company was unhappy with efforts by developer Andrew Tridgell to develop an open source version of the BitKeeper client. In February, Tridgell wrote a tool that could work with source code stored in BitKeeper, and after several months of negotiations, BitMover decided to revoke the Linux developers' right to use the current BitKeeper software for free.
Free software advocates argue that Tridgell's code simply provided them with a way of contributing to the Linux kernel without accepting BitKeeper's proprietary software license. As Tridgell's client could only be used to access BitKeeper data, and did not replace the entire system, Torvalds now finds himself looking for a new source code management system, he said.
The most prominent free software advocate, Richard Stallman, had long called for kernel developers to abandon BitKeeper, arguing that its use was helping to convince kernel developers that the use of "non-free" software was an acceptable practice.
Now that goal has effectively been achieved, because of the impasse between Tridgell and BitMover.
Torvalds is clearly unhappy about being forced off BitMover. He called Tridgell's client a "bad project," and said that the software it produced has no benefit to Linux developers, BitMover, or even Tridgell himself.
"It ended up hurting people that didn't agree with (Tridgell)," he said of the software. "And it doesn't actually help anybody, since it only assured its own irrelevance by making BitKeeper no longer be available."
In the last week, Linux's creator has come under fire for publicly slamming Tridgell's efforts. Critics say that Tridgell's reverse-engineering of BitKeeper is analagous to the work Torvalds himself has done with Linux, which itself is based on Unix.
But in the e-mail interview Torvalds explained his perspective, using his usual brand of utilitarianism.
According to Torvalds, Tridgell's software was "bad" simply because it ultimately served no useful purpose. "To me, a program is only as good as what it does," he said. "In this case, it only caused problems."
Tridgell himself declined to comment on the matter, except to confirm, via e-mail, that he wrote a tool that interoperated with BitKeeper and to assert that he "developed the tool in a completely ethical and legal manner."
Both Torvalds and Tridgell, the founder of the open-source Samba project, work for the Open Source Development Labs Inc., (OSDL) a non-profit consortium based in Portland, Oregon, which promotes Linux use. Though OSDL management was "very involved" in the matter, according to a group spokeswoman, it appears to have been unable to broker a compromise in the situation.
Though a number of open source code management products are already available, including a popular system called CVS (Concurrent Version System), they tend to perform slowly when confronted with a project the size of the Linux kernel, Torvalds wrote. "Taking tens of seconds to apply a patch just because the source base is big is just not acceptable."
The Linux kernel is managed by a number of "subsystem maintainers," each of whom accepts bug fixes and new code submissions for a different part of the Linux kernel, and then forwards his changes to either Torvalds himself, who manages the next-generation kernel, or to Andrew Morton, who manages the more stable version of the kernel, which is the basis of most commercial Linux products. Though not all kernel developers used BitKeeper, critics had said that Torvalds' use of the software placed pressure on other developers to use it as well.
Torvalds was unsure how much of a disruption the new source code management system will represent for kernel developers. Torvalds has already put his kernel development work on hold for a week to work on git, but he said the real cost would be measured by how much the new software would slow down the numerous maintainers that contribute to the kernel.
Git, which is not yet "useable," according to Torvalds, will be harder to use and lack many functions available with BitKeeper. "How much that slows us down, we'll see," he said. "The good news is, these are some smart people we're talking about."
The source code management software is not the first side-project that Torvalds has worked on. He has also written software, called "sparse," which is used to check for errors in code. "I actually enjoy programming (outside of the kernel) occasionally, because it's a huge relief to not have to be so horribly careful, as you need to be in the kernel."
Torvalds seemed aware that his decision to drop BitKeeper would also be controversial. When asked why he called the new software, "git," British slang meaning "a rotten person," he said. "I'm an egotistical bastard, so I name all my projects after myself. First Linux, now git."