SCM programs are used to control the flow of updates and track program changes. In a project as large as Linux—more than 17,000 files—this can be very difficult and very slow.
He describes Git as "a stupid (but extremely fast) directory content manager. It doesnt do a whole lot, but what it does do is track directory contents efficiently."
It also cant be used with BitMover Inc.s BitKeeper, the controversial and proprietary SCM that Torvalds had used to manage Linux kernel development.
"Git has a totally different model of representing the source tree," said Torvalds in an exclusive interview with Ziff Davis Media Internet News.
The name itself really doesnt have a meaning. Torvalds joked that it can be a "random three-letter combination that is pronounceable, and not actually used by any common Unix command. The fact that it is a mispronunciation of get may or may not be relevant." Or, "stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang." Or, "global information tracker: [if] youre in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room."
Git has already been used for its first run of Linux: the beta of Linux 2.6.12-rc3. But Torvalds admits that Git is still a work in progress.
"The roughness really comes from two things," said Torvalds. "Its a young project, and it just takes time for things to mature. That will go on for years, assuming none of the other open-source SCMs just eventually show themselves to be capable enough that we just end up deciding that Git was a good temporary bridge."
Also, Git does some things very differently from traditional source management, Torvalds said.
"BK [BitKeeper] did that too, but in many ways Git is even more different," he said. "You literally cannot track single files individually. Git always works on a collection of files model, and theres no way to get the history of just one file without also getting the history of all other files; you can then ignore the other files, of course."
Its also, Torvalds believes, a matter of perception.
"Some of the roughness is just that people who are used to some things working certain ways will just be surprised by the Git model," he said.
"Git is just incredibly fast at handling big collections of files. The kernel is 17,000+ files, and Git can show the difference between two different kernel versions in small fractions of a second.
"But," Torvalds continued, "if you ask it, When did this file change last? Git will have to think about that, exactly because it doesnt do things on a file level, and it will have to look at all [the] changes."