Version Control Systems
Version control systems (VCS) are designed for tracking the changes to files. It is primarily used in software engineering to track the changes to source code. One of the most popular VCSs for software development is Git.
The primary functions of a SCM are:
- Retaining all versions of a watched file
- Ease of use (this is a big one!)
- The capability of retaining only the changed data, as to make the amount of space an SCM uses up is kept to a minimum (you can imagine how big the SCM would get if it saved a new copy of a file every time you modified it slightly).
- Multi-user capability, this has it’s own sub-functions
- A checkout system for files
- The ability to merge individual changes on one file together
Version control systems usually originate from command-line roots, and then get GUI’ed up once they gain popularity. Using modern SCMs like Git and Mercurial is trivial through a command-line.
Child Pages






SVN
A very popular version control system that is well integrated into a fair amount of third party software. Manages on a file-to-file basis, which gives the main benefit of a user being able to checkout a section of a project, work on it, and commit it back to the main repository without ever downloading the rest.
An annoying problem of SVN is the errors I keep getting. I am not sure if I use it right, but somewhere along the line of using SVN for project (be it a day, or a few weeks later), a clash arises from trying to merge to files together or accidentally renaming a folder. This normally locks the directory and I can never get the clean up function to work properly, resulting in SVN becoming useless. This is why I prefer Mercurial/Git.
CVS
CVS (concurrent versions system) is a tool for version control of files (normally code/text-files). It is older and considered inferior to newer CMS’s such as Git or Mercurial. As of 2013, it is being used by Sourceforge.
CVS can be installed onto a Linux system using:
$ sudo apt-get install cvs