Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists?

Updated
3 min readView as Markdown
Why Version Control Exists?

Hey there developers!

I'm sure you have all thought about this at least once:

I’m a coder, why should I learn this version control thing?

Shouldn’t I be learning new technologies or focusing on problem solving?

Why does this version control even exists in the first place?

Well, you’ll get your answers here. So sit back, relax, and let’s understand why version control exists.

The Pendrive Problem

Assume that you are given a team project with your 2 friends.

All 3 of you’ll be working on that project. None of you have ever worked in a team before.

You all decided to keep all the code in pendrive and pass it to each other turn by turn.

Each person takes the pendrive, writes their assigned part, and then passes it to the next person.

This means:

  • Only one person can work at a time

  • Collaboration is slow and difficult

But since there is no other way, you all start the project like this.

Initially, everything feels fine.

But soon… problems start appearing.

Problems like:

  • Overwriting each other’s code

  • No record or explanation of changes

  • Nobody knows which change caused the bug

  • No way to see what the code looked like yesterday

And this is only a team of 3 think what a mess it would be in a larger teams.

This is exactly how developers used to work before VCSs.

Life Before Version Control Systems

Developers used to face the same problems as we saw earlier.

They used to share code through emails, pendrives or external drives, so the collaboration problem was the same.

And for the problem of code tracking, they used to maintain different versions of the code in separate folders like:

project/
 ├── final/
 ├── final_v2/
 ├── final_v2_fixed/
 ├── final_latest/
 ├── final_latest_please_work/
 ├── final_final/

This used to worked for single developers or very small projects.

But as soon as teams or project grew, things started breaking badly.

Why the Pendrive Model Doesn’t Scale

The pendrive way might work for one person or small project.

But in real-world software development:

  • Teams work across cities and countries

  • Many developers work on the same codebase

  • Changes happen rapidly

Without a proper system:

  • Collaboration breaks

  • Productivity drops

  • Bugs increase

  • Code quality suffers

This made it clear that:

We need controlled and trackable collaboration.

The Solution: VCS and VCS Servers

A Version Control System is a Software that:

  • Tracks every changes in the code

  • Maintains a complete history of changes

  • Allows rollback to any previous version of the code

Popular VCS tools are:

  • Git (Most Popular)

  • Subversion

  • Mercurial

  • Perforce

A VCS Server is a VCS installed cloud server on which the code repositories are maintained.

It allows:

  • Multiple developers to access the same codebase

  • Track changes

  • code reviews and backups

Popular VCS servers:

  • GitHub (Most Popular)

  • GitLab

  • Bitbucket

  • Azure Repos

  • AWS CodeCommit

Final Thoughts

Version control exists because software in the industry is not built by one person. It is built by teams, and teams need a safe and reliable way to work together. Version control solves these problems by providing history, safety, and collaboration. That’s why learning version control is not optional, it’s a basic skill for every developer.