Version Control (or Revision Control or Source Code Management) is still a somewhat of a mystery to many developers, especially those who are new in the field of software and web development. I am stumped as to why that’s so, because one figures that professors would advise their students that additive backups are an Extremely Good Thing. What does additive backup mean? It’s very simple.
Quick overview of how it works
By using an additive vesion control system, you will never lose your files, because nothing can be deleted, it can only be revised. Each revision marks a change (adding files, modifying files, removing files) in the version control system, and the system keeps all the files of all revisions (these are highly compressed, so little to no space is wasted between revisions). Every revision is added on top of the last once, hence the name additive. At any point in time, we can go back and access the files from our previous revisions. All of your files are kept in the system’s database, called a repository.
Why use it?
This is a very good question. How do you benefit from version control system? Whether you are a programmer or not, and whether you are storing source code, pictures, music, or any other type of file, a version control system is an indefinite backup system. There is really no way to accidentally delete files or to overwrite them (assuming you’ve backed them up first!).
A lot of the times what people do is they will store their backed up files in:
- a folder on the computer
- a password protected zipped file on the computer or on a remote server
- a USB key
And this is just counting the people who do back up their sensitive data!
The problem with all these methods is that they are prone to human error that cannot be undone. Version control does not suffer from this problem because if you make a mistake, you can always go back to a previous point in time, effectively undoing the changes.
Where do I get it?
There are a number of version control systems, each with pros and cons. The one that I use and highly recommend is Subversion (SVN). It is painless to set up, and you can get it up and running in less than ten minutes. The easiest way to set it up is to download the CollabNet Client and Server Installer. Afterwards, I highly recommend you download TortoiseSVN, providing you with a GUI on Windows accessible with right-mouse click.
Update: A number of readers have also recommended VisualSVN Server — a self-contained SVN repository manager. This is another excellent choice for both personal and commercial use. The free version comes with a few restrictions, but it’s definitely not a deal breaker.
It’s really that easy
For more information, TortoiseSVN provides a very good introduction and manual on managing your Subversion repository.
Conclusion
Try to use version control with all your important documents. This will ensure that your files never go missing, and in case of accidental loss of data, you can always go back to a previous version of the file. Ocassionally, it’s a very good idea to backup the version control system to another computer (password protected by default), in case of a catastrophic hardware or operating system failure.
