For a little under a decade Git and SVN competed for market share in a fashion reminiscent of browser wars.2 As recently as 2010, there are forum discussions that perhaps Git and SVN were not competitive — that the two were best in class products of two different breeds (distributed and centralized version control), and that companies would likely support both.3
It’s clear that Git won hearts and minds.
In the early 2000’s version control was coming of age. By 2009, SVN had developed a commanding lead over all the others, with a reported 57.5% market share compared to 2.4% for Git.1
This has proven not to be the case: as interest in Git has grown, interest in other version control approaches has waned. Today Git is the clear victor.
We asked technology leaders why they believe that Git ultimately beat SVN, and a recurring theme in their replies was the ease of collaboration that GitHub brought to the table.
Here’s what they said:
“I think the top contributing factor was GitHub’s decision to make hosting free for open source projects. This led to widespread adoption on personal projects, and once this became the favorite tool of engineers this bled over into the enterprise space.
“It's also true that the tech is better, and this was an important reason that GitHub attracted some of the best developers right out of the gate. Many of these developers were fascinated by the design of Git. But if not for GitHub, it would have taken a long time for Git to become dominant: GitHub gave Git network effects.”
“I believe that Git won because it is fundamentally more social and engineers are actually very social people. Git was built around the concept of fork and pull request whereas SVN was built around the more classic model of everyone working in the same branch. Yes it was possible to use the fork (branch) and pull request model in SVN but it wasn't the default model, and thus the default social structure required much strong vetting of committers before letting them into the main branch which led to much slower growth in the social organization around projects. Git, on the other hand, has the more open model where everyone can offer suggestions (even if only a few of them are actually accepted), and thus the default social structure is much more inclusive and thus attractive.
“There's a strong lesson in this of be very careful what default models you build into your systems. If you want to build a collaborative platform, you have to make sure that there is an equal benefit to all participants.”
“I'd attribute 80% to the rise of GitHub and then 20% to the sentiment ‘Git is better than SVN’.
“Without GitHub, SVN would probably continue to dominate. Git alone just isn't ‘good enough’ compared to SVN to unseat it single-handedly. I would also estimate you are hearing that sentiment a lot. :-) ”
“Git won for 2 reasons in my mind: technical/ease of use and GitHub's social network. In terms of the ease of use, the central concept that won a lot of people over was the decentralized structure of Git. Anyone who has checked out a SVN repo and then experienced Git breathes a sigh of relief. Throwing code in different branches quickly, stashing changes, and cherry picking commits result in a much cleaner, easier, and faster way of tracking the way developers actually write code.
“The other reason was GitHub's social network. Developers aren't naturally the most social people. Want to make 100 engineers uncomfortable? Invite them to a “networking mixer”. However, showing code to other people, sharing it, and collaborating in a way that doesn't require face to face interactions? Yes please! When GitHub came out with their profiles, their public repositories, and their pull requests, it became a way for developers to network. Networking is crucial to every professional's career and not until GitHub came around was there a great way for developers to network with fellow developers. It became socially mandatory to use Git.”
“I think Git ultimately won because the workflow it enabled better reflected the evolving ways engineering teams worked. A centralized versioning system such as CVS or SVN made it very difficult for teams distributed across timezones to collaborate efficiently.
“The other major driver was the push for programming to be peer reviewed by colleagues. Once again, Git's workflow with pull requests, along with its speed/ease of merging & branching made this far easier to do, ensuring code quality across the board for companies/projects with a peer reviewed workflow.
“The nail in the coffin for SVN, was Git's massive adoption by the open source community via GitHub, which then moved across all software stacks and organization types.”
“Mercurial was my first exposure to a distributed version control system (DVCS), back in 2006 when we were running it on a machine in the basement of the startup where I worked. That was before anyone put source code or anything confidential in “the cloud" even though we were building a cloud product, ironically! We did code reviews via emails diff's, it all somehow worked out.
“When I joined Tivix, I stayed with Mercurial using Bitbucket. Then two issues arose: I kept hearing about Git (and how since it was created by Linus Torvalds it must be better!) and that GitHub had a far nicer user-interface than Bitbucket.
“For us, the decision came down to which had the most community traction, easiest onboarding of users (internal and external), team management, and perception of being secure. Git had all of those, and specifically GitHub, which I primarily credit for making Git as popular it has become. That coupled with the fact that Mercurial remained popular only in the Python Development community and failed to find a mainstream foothold.
“Containerization is going through a similar period where there are multiple options (rkt, Docker, etc). It seems clear that Docker has the mindshare, partner ecosystem and developer toolchain on its side. Docker might be to Containerization what GitHub was for version control.”
Have another take on why Git overtook SVN? You can catch me on Twitter.
1. Eclipse Community Survey regarding SVN and Git usage https://eclipse.org/org/press-release/EclipseSurvey2009_final.pdf ↩
3. Discussion of Subversion and Git as complimentary, not competitive. From the WANDisco blog http://blogs.wandisco.com/2010/09/08/why-we-got-so-heavily-involved-in-the-subversion-project/#comment-894 ↩
5 keys to successful organizational design
How do you create an organization that is nimble, flexible and takes a fresh view of team structure? These are the keys to creating and maintaining a successful business that will last the test of time.Read more
Why your best tech talent quits
Your best developers and IT pros receive recruiting offers in their InMail and inboxes daily. Because the competition for the top tech talent is so fierce, how do you keep your best employees in house?Read more
Technology in 2025: Prepare your workforce
The key to surviving this new industrial revolution is leading it. That requires two key elements of agile businesses: awareness of disruptive technology and a plan to develop talent that can make the most of it.Read more