Over the past few months I have seen many posts on stackexchange and questions asked in IRC about whether a solo developer REALLY needs to use a version control system. The beauty of VCS systems really begins to shine when in a multiple developer environment where you need to have an easy way to merge code, have a log of all changes, and a way to manage versions in branches. I think part of the reason for the recent questions is because of the popularity of GIT, a
distributed version control system. People see the distributed in the description and assume is should only be used by remote developer which isn’t the case at all.
There seems to be a common misconception that a solo developer doesn’t also have these same needs. Although on a much smaller scale, the problems listed above are all present for the lone developer that wants an easy way to organize their code. A solo developer still needs to have a log of changes made to file as well as folder structures with the ability to rollback and revert changes if needed. They also need to be able to merge code with revisions he is making in different
branches. Which will then lead to needing to manage versions throughout the development lifecycle of the product.
The best reason to use version control, even as a lone dev, is because it is so damn easy. In Windows there are great installers that provide both GUI and bash support and provide the
git command to the
PATH=. In linux it is as simple as running the follow command in your terminal
cdinto the directory and run . The second command adds all the files currently in the directory to the repository. You will finally want to run to make your first commit. The
-mtells git that the text that follows in quotes is a message. This allows you to have an easy to see message to for review commits later.
As you work through development on an application you will want to become familiar with branching and checking out branches. This allows you to keep code on its own while in development so you aren’t making changes to the working code while you play around with new features or bug fixes. Branching is very simple but it is a bit more than I want to get into for this post.
Using a VCS is just so easy to use and has so many upsides even for a solo developer that everyone should really be using it. I prefer GIT but there is also SVN, mercurial and CVS, plus many others. Google around and see which one will work best for you and start using it. Not only will it make your workflow much more organized, it also is great to have on a resume if you ever decide to work somewhere on a team of developers.
For a full tutorial on Git and its usage in open source projects LornaJane has a great post on her blog. Do Open Source with Git and Github