What is Version Control and Why is it useful?
Let’s first start this article with defining Version Control.
“The management of source code, documents, graphics and related files in a large software project.” – PC Magazine
What this means is that Version Control Software keeps tracks of all your files related to a project. Version Control knows when picture.jpg or index.html has been modified, what was modified, and can retrieve previous versions for you. This eliminates the need for people to have multiple copies of the same files and to try and keep track of the latest version and the previous versions. Also, Version Control systems will alert users of “conflicts”. A conflict can happen if two developers changed the same file and the same line number. When this happens the “check in” or “commit” will stop and require user input to decide what to do with this conflict.
Types of Version Control Software:
There are many types of Version Control Software available. Some are open source, others are proprietary, some are client-server model and other are distributed model. How do you know which ones to pick?
So far my experience has been with Open Source versions such as CVS, SVN, and Git. They all are a bit different but the overall operation is very similar.
CVS and SVN are client-server version control systems. This means that the most current version of the project and it’s history is stored on the server. For more details go here: http://www.pushok.com/soft_svn_vscvs.php
Git is a distributed model of version control. Information related to a project such as the current version, history, branches and tags are stored in a file structure. For more details go here: http://git-scm.com/about
This article has been written at a pretty high overview, but enough to at least let you know what version control is and that there are many different options. Deciding which one is best for your all depends on your environment.