Version Control

Even a single developer, working alone, should use a VCS – Version Control system. We’ve all had that “Oh crap!” moment when we had a slip of the mouse and deleted some important piece of code, or made some “minor” change that bites us in the backside. With version control, one can go back to a previous version and carry on as if we hadn’t done that dumb delete. For teams of 2 or more, particularly distributed teams, there is no rational other choice.

If you search Wikipedia for “Version Control Software” you will find that there are well over 30 contenders. Many are no longer in development, or are very industry-specific. Currently the best known applications are:

Subversion: Long a stalwart of the industry, it has been losing popularity for several years.

Microsoft Visual Studio Team Services: This is part of the overall Visual Studio suite. One of its components is a Git-compatible VCS. Development teams using Visual Studio may already have access to Team Services.

Git: Used by almost half of all development teams, this is the gold standard in VCS. The original author is Linus Torvalds, the founder of Linux. He named it after what he refers to as one of his own characteristics.

Mercurial: An alternative to Git, Mercurial is used be several well known companies such as Facebook.

The other aspect of using a VCS is that of external hosting. Most VCSs support local hosting of the repositories, but Git has the advantage of also having inherent access to GitHub, by far the best-known public VCS hosting service. The default account is “free”, in which all the submissions are visible to the public. This is in keeping with its open-source philosophy. Private repositories start at US$7/month.

Recommendation: use Git and GitHub. Besides, who can resist the 5-armed Octocat of Git?