Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists: The Pendrive Problem

Learn how version control became a thing in software development

Published
•2 min read•View as Markdown
Why Version Control Exists: The Pendrive Problem
K

I am a problem solver and a full-stack developer. I love to write and share my knowledge. My wish is to learn and help others learn at the same time. Hoping to make a difference in the tech world.

The Original Problem

Tracking

To understand why version control is needed, let’s go back to a time before it existed. During that time working on a project would probably look like this:

project/
 ├── final_code.cpp
 ├── final_code_v2.cpp
 ├── final_code_v2_fixed.cpp
 ├── final_code_v2_fixed_final.cpp
 └── final_code_v2_fixed_final_REAL.cpp

If it isn’t obvious already, then let me clarify:

  • One project containing multiple duplicates

  • Wastage of storage space

  • Hard to keep track of changes

  • Which version to share?

So, we needed something or a software which would keep track of all my changes without creating duplicates on every change, while allowing me to share and collaborate on it without any sync issues. So, we can just create let’s say a text file which keeps tracks of changes:

project/
 ├── final_code.cpp
 ├── tracker.txt -- keeps track of changes in final_code.cpp

But this solution has gaping flaws:

  • Manual tracking - becomes messy when changes become large

  • No viable way of collaboration, still need that pen drive.

Collaboration

After this it’s become clear that we need some sort of global repository which anyone can see and make changes while it keeps track of all changes. Easy enough - Just a deployed webpage which hosts a tracker will do.

We are now controlling version of our project efficiently. This whole story tells us why Version Control exists. Without it, we have no clean way of tracking changes while making sure anyone can collaborate in it.

Version Control

  • A global repo (remote) hosts the tracker

  • Anyone can collaborate

  • Has rollback enabled

  • Solves messy manual tracking issues

  • Enables teams to work on a product efficiently

This is why Version control is an indispensable tool in modern workspaces. Without it, production would be a total mess as it solves a bottleneck impossible to manage manually.