Have you heard about ‘version control’ but don’t know what it is, don’t see the point, don’t want to invest time finding out about it, or think that it is only accessible to the tech-savvy? Think again!
This is the first in a series of posts devoted to demystifying version control. By ‘version control’, what I really mean is the management of changes to documents, code, or information. In this week’s post, I will start off by debunking the myth that version control is only for computer scientists or software developers by talking about tools that you may already be using that have features that are essentially a form of version control:
If you are using a Mac, chances are you might have decided to use the built-in Time Machine utility to carry out incremental backups. Aside from providing an up-to-date backup to restore from if you suffer a hard drive failure, one of the main features of Time Machine is the slick interface to browse back through your files in time and selectively restore them. Until recently, I had actually forgotten about this, and other than checking the backups backups were not failing, I didn’t give Time Machine any second thought. One day, I accidentally deleted a folder containing some important files. It only occurred to me several hours later that the files would of course be present in the Time Machine backup, and that I could just browse to the parent folder in the Finder, start up Time Machine, and restore the deleted files from the latest backup where the files were still present!
We’ve already heard from Kelle about how great Dropbox is to keep files in sync across multiple computers! However, there is more to it than simply synchronization – Dropbox keeps every version of the files that it has uploaded in the past month, even files that you have now deleted! To see the existing revisions for a given file, you can log in to your Dropbox account via http://www.dropbox.com/ and browse your files until you find the file you want to restore a previous version for. Then, click on the arrow on the right and select ‘Previous versions’. You will be taken to a list of all the versions stored, with the option to restore any one of them! On Mac, you can also just right-click (or control-click) on any file in dropbox, and go to ‘Dropbox -> View Previous Versions’. Additionally, if you have accidentally deleted a file in a directory, browse to that directory via the web interface and select ‘Show deleted files’. You will then see deleted files grayed out, and will have the option to restore them to your Dropbox! These features also work well in shared folders, where multiple users can create, modify, and delete files.
One of the forms of version control that most people are likely to have encountered at one time or another (but under a different name) is the ability to track changes in popular word processing software such as Pages, Microsoft Word or Google Docs. For example, in any document in Google Docs, you can use File -> See Revision History to see all previous revisions of a document and revert to a previous version if needed. In Pages and Word, you will need to actively turn on tracking to be able to keep track of changes (see here and here for more details). Change tracking can be used to track not only changes you have made to a document, but also changes that collaborators have made, making it very useful for collaborative editing of documents such as proposals.
While you may not think about them in this way, all of the tools/features described above really are just a form of version control. The benefits of using such tools is obvious: you can increase your productivity by making it easier to go back in time to correct mistakes that you might have made, or understand at what point mistakes were introduced, or even recover deleted files that you therefore won’t have to recreate from scratch!
Next week, I will discuss how to use more advanced forms of version control for code, papers, proposals, etc. using common version control tools that anyone can easily set up, including Subversion and Git.
In the mean time, feel free to suggest any other version control features that you know of in commonly used software!