Development / Tips February 6, 2011 @ 22:27

Version Control

A version control system is a server-based system on which you can store multiple versions of files without having to rename them or sacrificing too much disk space. Initially designed to store text files (code), it can also store binary assets, like pictures or audio files just fine. So why not just backing stuff up with whatever came with your computer? Many people working with computer files have the problem of having filenames like this:

SomeDesign.psd
SomeDesign1.psd
SomeDesign2.psd
SomeDesign1_New.psd
SomeDesign1_New_Final .psd

To solve this you could add dates to the file (SomeDesign_2010_01_01.psd) names or just keep adding numbers.
Not too practical because you’d need to keep a description of every file somewhere. I used to name files like this and tried all sorts of naming methods. But you work fast, save an extra version that your client likes and eventually, it becomes a mess.

This is where a version control system comes in. You just keep the same name, add a short description and throw it on the server that stacks it neatly into it’s database, keeping all older versions. At any time you can get an older version by number, date or description without having to move around stuff. And it’s easy to back up as well.

For teams it has even more benefits. If you’re working together on the same set of files, a website or a game for example, you try to keep in sync by copying files over a network, figuring out which ones are updated. Version control lets you update a project, just altering the new files and warning you if somebody has been working on the same file as you did. You could even lock the file that you’re working on to make sure nobody else can write it meanwhile.

There are numerous version control systems available. To name a few from the top of my head: CVS, SVN, GIT, Perforce, etc. Some of them are commercially available and very good. Perforce for example is a fantastic system that handles all kinds of files really well and is extremely easy to set up, but it has a price tag. Git seems to be very good, but I haven’t looked at it (yet).

In short, if you’re creating a lot of file versions and your harddrives and your usb pen drives are becoming a relic of human chaotic organization… it’s probably worth looking into this.

If you want to use a version control system, you need some place to store your stuff. This can be done at a globally accessibleGoogle, Sourceforge, GitHub or whatever free or payed service you can find. Or better and more fun, you can set up your own at home or in your company’s network. I’m using Ubuntu on an low-spec Atom/ION-based mini computer, attached to my TV, that also plays my music and videos. I’ve written a quick guide to set up Subversion (SVN) on such a machine here.

No Comments to Version Control

Add comment:


You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

By submitting a comment here you grant baseone:online a perpetual license to reproduce your words and name/web site in attribution. Inappropriate or irrelevant comments will be removed at an admin's discretion.