Catching up with VCS from 2012
When we released our Developer Productivity Report last year, it was the first time we asked our respondents about Version Control Systems (VCS) and source code management (SCM).
This is kind of an interesting topic for us, because these tools are not exclusive to Java development. Our numbers come from Java, Scala, Groovy, and other JVM language developers, so we’re taking more of a JVM perspective.
Subversion is still the most widely used, which makes sense, considering it is the natural progression after CVS (the old VCS king), which had conquered the market before other alternatives became more widespread. Recently though there has been a lot of movement towards distributed SCMs, like Git and Mercurial.
Distributed SCMs offer new functionality over the single repository system of CVS/Subversion (SVN). They’re more robust and powerful, but also a little more complicated in terms of what features they provide to developers. The distributed systems also make sense in our more distributed world. Being offline, but still able to check in and merge code is an incredibly powerful advancement in coding practices.
The most popular and successful distributed SCM/VCS is Git, which brings some credibility to the table by having been originally created by Linus Torvalds to manage the source code for the Linux Kernel project. In our Developer Productivity Report, Git was used by one-third of respondents.
It is incredibly easy to get started and has lots of support in the way of remote hosted repositories, with services like GitHub. Just to show the uptick in usage, GitHub has over 3 million users and hosts over 5 million repositories.
The runner up in distributed version control systems in Mercurial (Hg). It is very similar to Git, but just different enough to have an equally-enthusiastic community of users.
BitBucket, by Atlassian, is one of the remote hosted repository services for Mercurial. They do not make their user and repository counts public, but the numbers they have released over the years indicate roughly 60 thousand accounts and 85 thousand public repositories.
For you dinosaur lovers, CVS is still there for you. Concurrent Versions System (CVS), is a very mature, very stable and, nowadays, not very actively-developed software. We’d love to know more about who of you out there is using CVS, and why you have kept it around. Too much red tape perhaps?
We want to believe that despite the fact that CVS was one of the first versioning systems that featured branching of whole projects, and there exist some legacy projects that use CVS, all modern development is going with something more modern and feature-packed: distributable, atomic commits and renaming files come to mind.
Subversion / SVN
Subversion/SVN, as you probably already know, is still the most used source control management solution regardless of programming language. A lot of that stickiness can be attributed to the fact that people do not often change their version control system without a very good reason.
But speaking of that…what ARE some good reasons to switch your VCS? Please leave in the comments section :)
Source control may not be the most exciting topic, but there are good reasons to investigate upgrading your repositories from a single node model like SVN/CVS and move to a distributed model like Git or Mercurial.
We do expect more and more people to make that change as distributed teams become more normal compared to single site teams. For a small or hobby project, the barrier to entry with Git or Mercurial is so low, there is pretty much no reason not to use them. Especially when you throw in the free professional hosting provided by GitHub and BitBucket.
Let us know what you think in the comments section, or @Rebel_Labs on Twitter :)
BTW, we need help. Do you know any Operations folks? Y’know, like Infrastructure Engineers, Sys Admins, Release Managers? Through them a bone with our new survey, designed to improve the productivity of the IT Ops game. Takes 10min, will help a lot of people! https://www.surveymonkey.com/s/productivity-survey