Contact

An Introduction to Version Control

08 March 2016

Share

Welcome to the world of version control and part one in a mini-series put together by our development team to give you a valuable insight into how this particular system works and how it benefits various software applications.

At some point in any scale of project, the subject of version control is broached, either by how to apply an already established strategy or how to refine and improve on it. People often have intensely different views on how it should be approached; some are in the camp that it should be integral to everything that is done, while others see it as an optional extra to be taken depending on the size and scale of a project.

I always find the second school of thought a difficult pill to swallow. Even if you are working alone on a side project, the benefits of version control cannot be understated. It can be said that even when working alone on a project you still have to contend with two others – your past self and your future self.

Version control effectively gives you a time machine where you can see the history of your code base, how your past self changed it and why. This paper trail can prove invaluable at any point of the project; if a bug arises months into the project you can ascertain quickly the cause and rectify it. If you did not have the luxury of using version control, then you are now facing the monotonous task of looking at all related code to find how the error is occurring.

Vadar Version

I could write pages on the benefits of a well-defined version control strategy, but this would be wasted if people find it intimating to dip their toe into. The use of command line and terminology often puts people off. What is a branch? How do I pull this? What is a rebase? In view of this, my next blog in this series will explore a couple of tools that can ease the transition into embracing the version control process.

Here at Blue Wren, we provide bespoke software solutions for businesses in the North West as well as integrating systems into your website and providing full guidance along the way.