Despite Git's fast rise, rivals still have significant market share It's true that Git adoption has increased sixfold in three years, but Eclipse's 2011 survey of 704 developers still has Subversion as the source code management system of choice, with 51.3% of respondents using it. CVS, also a centralized system, comes in second at 13.3%. Git follows with 12.8%, while Mercurial was used by 4.6%.
Greg Stein, an Apache vice chairman and vice president of the Subversion project, suggests that Git's rise may not be a deep one. "I think a lot of what we're seeing is that Git has got a lot of mind share. [But] I don't know if it's necessarily true that a lot of corporate development shops are switching [to Git]," he says.
He says Subversion is better at handling large binaries and large repositories than Git is. For example, for large code bases, Git repositories have to be copied to every workstation, which can be difficult when developers have to deal with hundreds of gigabytes, says Stein. (Chacon concedes that using Git to version-control very large software assets, such as videos, can present problems, but he advises using an asset management system along with Git in such cases.)
Stein says that Subversion's centralized repository scheme requires tighter collaboration across a team, which should result in better code. He also notes that the upcoming Subversion 1.8 release should bring it closer to Git's capabilities, with features like Git stash, in which a developer can make changes locally and then set them aside, and offline commits, which records completed changes when a developer is offline and moves the to the master repository when the developer reconnects.
Mercurial, which is open source like Git and Subversion, is more similar than different from Git, says Matt Mackall, Mercurial's primary author and project leader. "They're both designed for speed and they're both inspired by the design of an earlier system called Monotone, so they have a lot in common architecturally."
However, he says, Mercurial is generally designed to be easier to use. "If you're coming from CVS or SVN [the common shorthand for Subversion], it should seem fairly familiar. Mercurial wins some performance benchmarks and Git wins others. Windows folks tell me Mercurial works much better there." Mackall believes both projects have similarly strong communities, with both being sizable, diverse, and active.
Git is on a roll, but has a long way to dominance Git has gained a lot of important adherents, with major adopters including the Ruby on Rails project, the Debian OS effort, and the Linux kernel. Developers clearly are taking a liking to the platform. But there are still plenty of users of other technologies, such as Mercurial and Subversion, as Eclipse's survey reveals.