Torvalds stopped using a management system called BitKeeper earlier this month, reverting to an older, slower technique of simply e-mailing updates among the hundreds of programmers who contribute to the project. But moving to Git means the Linux project once again will have an automated mechanism to control the flow of updates and track changes.
In 2002, Torvalds had BitMover in South San Francisco, Calif. He praised it for boosting Linux programmer productivity, but almost immediately others began objecting to reliance on proprietary software., proprietary software developed and sold by a company called
The more important objection came this year, from the opposite direction. BitMover founder Larry McVoy complained about efforts in the open-source community to copy BitKeeper--in particular an effort by Torvalds' Open Source Development Labs colleague, Andrew Tridgell, who was working on a BitKeeper-compatible project called SourcePuller.
Torvalds' Git project, in contrast, makes no attempt to be compatible with BitKeeper, he and McVoy said in interviews Wednesday. That means more difficulties for those converting to the new system, but no friction with McVoy.
"I needed something that works for me quickly," Torvalds said by e-mail. "I was pretty sure I could do an implementation that sucks in many ways but that is sufficient for my needs (and I could do it) faster than the existing SCMs (source code management tools) could adapt to being used for something as big and distributed as the kernel."
Git does draw from the BitKeeper experience. Obvious evidence of that is the fact that neither tool houses software in a single, central database, Torvalds said. "One thing that BK (BitKeeper) did was to show how we can really do distributed development, and that way of working has been very successful. So Git is not compatible with BK, but it has been designed to be compatible with how I ended up using BK."
SourcePuller wasn't sufficient for the challenge at hand, he added. "SP doesn't actually do any of the things that we depended on with BK. It only shows you the end results. And if you can't use SP together with BK, it ends up being pointless," Torvalds said.
Git, like Linux itself, is governed by the General Public License (GPL), and about five to 10 programmers "seem to be really getting into it," Torvalds said. But he doesn't expect the project to be widely useful beyond the Linux kernel effort.
"Right now, the pain of using it (due to the rough edges) is just higher than the gain, unless you have rather specific needs--needs that the kernel development process has, but probably not very many (or any) other project," he said. "Even for kernel developers, it's certainly going to be less pleasant than BK was."
McVoy said Git is "fine for the problem Linus is trying to solve" but isn't a full-fledged source code management system. "His job is to accept patches at an enormous rate," and Torvalds has optimized his software for that task.
"What Linus has done is to focus on the 5 percent of the functionality that he needs. If you are Linus, you'll really like Git," McVoy said. "If you are a more traditional user with traditional expectations about your SCM system, then Git falls short."
Among the differences: Git can't rename a file; users must instead delete one and recreate it elsewhere with the new name, McVoy said. And it doesn't handle space efficiently; a tiny one-character change to a 1MB file in Git will result in a 2MB file, whereas BitKeeper's file will grow only by one byte.
Torvalds recognizes Git isn't flawless: "I'm proud of Git, but let's face it, it definitely has some rough edges."