Thursday, 12 June 2014

Version Control/Revision Control - Introduction

We are thinking of migrating to GIT from Subversion, hence I thought let me include a guide to version control systems. I might in a later post also including the steps we have thought of for the migration hoping this might be a guide for someone


Coming back to what I would mention as part of this post, here's a quick guide to what Version Control is all about. Version control also know as Revision Control is the process of managing changes to any kind of information that is capable of changing or having revisions. The kind of information we deal with in the Software Industry could range from anything like Requirements Documents, Design Documents, Software Code, Test Case Documents, System Configuration Information and a lot more.

So how do we deal with different versions of documents and if many different people in the team are using the same document and updating the same section of the document. For example, if you had 2 developers working on the same piece of code and writing 2 different bits of functionality which affected the same method? How would you deal with the changes every time you need to release the code. You would have to do individual merges of code from everyone's machine and retest different bits of functionality to ensure nothing's broken.

All of this can be automatically taken care of if you were using a centralised repository, where every time someone makes a change, all you have to do is sync your local code with the repository version and you've pulled in the latest code. If there is a conflict with the same sections being modified by 2 or more different people, the changes have to be merged in manually. But usually the job becomes easier if your using diff tools to compare the differences.

There are other advantages for the Release process while using Version Control systems but I won't go in there in this post. It's more about the branches and tags as part of the Release process but that could be a separate topic altogether. 

So there are various Repository tools which support Revision Control or Version Control. Some examples of the most common ones are

Microsoft Visual Source Safe - Licensed cost
IBM Rational ClearCase - Licensed cost
CVS - Free
Apache SVN - Free
GIT - Free

In addition most suites provide for version control. Spreadsheet and document tools have an inbuilt versioning control system, which allows for changes between multiple users. They also do provide a mechanism for merging in 2 or more versions of the document into a single one. Since the repository may not have any inbuilt mechanism for comparing various kinds of documents, the merge tools are usually third parties for the various kinds of documents that you may have. The merge is usually not a functionality that the Repository provides.The document once merged and updated  can then be stored in the Repository that your using.

Hope you liked this short introduction to Version Control or Revision Control. Please feel free to leave any comments or feedback.


Wednesday, 4 June 2014

Introduction/Welcome Note

I have been wanting to do this for a few months now, but only got the motivation to this today.

This blog would be an amalgam of the technical knowledge that I have worked on, and hopefully helps other people too?

Anyways welcome to my blog, and hope you enjoy your stay here.

Comments/Suggestions are more than welcome.