Skip to main content

Command Palette

Search for a command to run...

Need for Version Control

Published
2 min readView as Markdown

Version control exists so that the developers can track changes, manage complexity and collaborate their codes. It acts as time machine and lets developers undo errors, has multiple languages and provides stability to the users and an experimental version to the developers.

The Pendrive Analogy: Highlights the chaos that arises from using a physical entity to share data, version control has been designed to solve this very problem. It gets difficult identify who created what, if any error arises in the code, it will become difficult to track “who changed what“ turning coding and collaborating the code into a total nightmare!

Manually merging the data can change results and overwriting can happen, physically transferring data can also lead to data loss, corruption or physical damage of the pendrive resulting in permanent data loss. All of this will lead to a total wastage of time and efforts.

server.webp

The image above displays how version control works. This method helps maintain a centralised version and there is no merit conflict among the team mates.

Version control allows an unlimited number of devs (with branches) to work on a piece of code while pendrives were limited to 2 to 3 people max.

There are 3 types of version control systems majorly:

  1. Local Version Control: Operates entirely from our personal machine and there is no connection to the remote repository.

  2. Centralised Version Control: All the files on which the work is done and their history is maintained in a single common server, developers connect to this server in order to update the code.

  3. Distributed Version Control: Developers have multiple repositories and working copy of their own. Changes made by the dev will not be updated in the code until and unless it is pushed to the central repository.

Popular version control systems: Git, Mercurial, Subversion, Fossil, CVS.

Version control systems are a good way to manage our code in a structured and secure manner.

  • Multiple people can work on the same project at the same time, without the fear of overwriting and smoothly merging the code afterwards.

  • Changes made in the code can be tracked: who made what changes, at what time and can also add comment to their changes. Simply history is save in the repository.

  • If any error occurs in the code, it can be traced back and solved without much hassle.

In conclusion, the pendrive method is an old and chaotic choice of work and modern coding has version control now which is modern, efficient and meets the needs of the developers.