Why you should be using version control
Posted in Web Development on July 26th, 2010 by Rachael – Be the first to commentA long, LONG time ago at Kintek, we (naively) used a version control system which basically consisted of storing all code locally and making physical backups nightly. This meant that we always had a copy of each client’s website that was at least within 24 hours of changes. I’m sure many people take this approach as it is relatively quick, easy, and feels like you are in control. Unfortunately, you actually end up doing more work than you should!
The first issue with the naive system is that usually people only keep a small number of versions. For example, at Kintek, we would usually only keep backups within 7 days of the current state of a website. However sometimes we needed to revert back to code older than a week, and sometimes it was necessary to keep the entire history of a project. Obviously this meant we wasted a lot of time re-coding and organising revisions manually.
Another issue we had was that it was hard to know the changes made to files, and in particular, the developer who made the changes. More problems arose when two developers were working on the same project - we found that it was almost impossible to work on the same file at the same time.
Luckily, there is a solution to these issues: version control. Version control (otherwise known as revision control or source control) is used to manage the changes to files such as source code. Users simply obtain the files they need from the system, make changes, then upload the files back to the system. From a user’s point of view, it cannot be simpler - all the hard work is done behind the scenes by the system. The system itself traditionally records the changes made to the file and the author of the changes. Any conflicts within 2 versions of the same file are resolved by merging the contents. This means 2 developers can painlessly work on a single file at the same time without over-writing each others changes!
Another extremely important advantage of version control is that it means developers are always using the current version of the project. Also, an entire history of the project is kept, meaning users have easy access to every version of every file. Furthermore, version control systems can be setup on external servers which in turn minimises the many risks associated with storing data locally.
There are many version control systems available and at Kintek we use Git, which is open source and freely available for download. We have found it has greatly increased our productivity and allowed us to collaborate more effectively. If you aren’t using a version control system you are not only wasting time, but you are also putting your projects at risk.
Make sure you give version control a try and see the improvements for yourself!




