Version Control Systems
When developing software one constant we all have to accept is change.. The code will change for various reasons, like scope, refactoring, and debugging. It is important be in control of change. This post and others to follow will venture into tools dedicated to change control.
So we have made a change and we are happy, but what if the change doesn't work out and we want to go back, it's time to save a copy.
The most basic approach is to use the “save as“ command and append a number to the end of the source file name.. HelloWorld.cs, HelloWorld2.cs, HelloWorld3.cs as we make changes, wha-lah a manual versioning system.
We might want to get a bit more sophisticated and have more than one dimension to our manual version, one dimension might represent changes at the specification/definition level and another changes at the implementation/declaration level.. HelloWord2_1.cs.
This is all fine when we are working in isolation, without anyone helping us reach our end goal. When many brains working with the same source code we need to manage the occassion when two or more bods want to change the same code at the same time.
Concurrent change control is born.
Concurrent control is the realm of tools such as Visual Source Safe (VSS), Concurrent Version System (CVS), Revision Control System (RCS), Clearcase, Starteam, Subversion, Perforce and more and more..