Versioning is a must for all software developers particularly in teams. Some refer to this as code versioning system (CVS). So what is SVN (Subversion) or Versioning? If you are a developer, or freelance or someone who codes, its a bonus point to put on your CV that you use a type of software versioning system.
All products, codes, websites, applications use at least some form of versioning system. The basic idea is that it is a central server that hosts all the current/latest version of the code including previous versions, so that one can “revert” back to older versions if necessary. The software also helps in resolving conflicting code and helps plan out software releases and bug fixes versions.
Within various SVN (Subversion), I find that tortoiseSVN and tortoiseCVS from sourgeforge has to be the most user friendly and easy product for Windows. For MacOS, I recommend the use of sourcetree by Atlassian http://www.sourcetreeapp.com/
When you use SVN, you can either install the server on your local system or remote repository. This may depend if you are working as a team or just yourself. (of course, there are some other reasons as well such as making sure your code is securely stored). Typically you would add a folder to repository (if you have new code) or “checkout” the code from somewhere else.
GIT and Mercurial
Git is one of the most popular versioning system with mercurial. There are some differences between them but the were created to solve some problems which SVN does not do well. That is forking of code.