Version control

Version Control



What is version control?

According to Wikipedia, version control is:

a component of software configuration management, version control, also known as revision control or source control is the management of changes to documents, computer programs, large web sites, and other collections of information.

This pretty much sums it up. Version control is very important in software development because there are always new features or bug fixes being integrated into software on daily basis. In order to have multiple people contribute to the same code there has to be some sort of revision over this work. This is when all the utilities of version control come into play.

For instance, let's assume that we have a web application in production and our client wants to add a new feature in which a new user can sign up using their Facebook account, this is actually called Omniauth-facebook, enabling user authentication (login/signup) through their existing Facebook account. To do so, the developer must branch off the master branch by creating a development branch which might be called in this case omniauth-facebook, because the master branch by convention contains the code used in production and we don't want to do changes to the master branch directly. At the same time, there is a bug in the web application that needs to be resolved by another developer. This is a situation where multiple developers are contributing to the same source code at the same time.

After testing code on the omniauth-facebook branch, the developer must create a pull request so other developers on the team can review his work and approve the new feature. Reviewers then can test the new feature and leave comments in case there are bugs or things to add/remove. Once the work is approved then new feature can finally be merged with the master branch and later rolled into production. The same goes for the bug fix.

This is a simple example of a version control implementation. Through version control, developers can contribute to the same source code at the same time very efficiently, review each other's work, edit, and correct mistakes when needed. Version control is used widely around the world by all tech companies, from small startups to tech giants like Google and Microsoft.



Done


Leave a comment


Post


Comments

Be the first one to leave a comment!