Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists : The Pendrive Problem

Updated
4 min read

The “Pendrive“ Era

Before we had sophisticated systems like Git or GitHub, developers lived in the dark ages. We call this The Pendrive Era.

If you are new to coding, you might take git push for granted. But back in the day, sharing code didn’t mean pushing to a cloud repository; it meant physically moving files from one computer to another.

The workflow looked something like this:

"Here, take my pendrive, add your function, save it, and give it back to me."

It sounds simple, but in reality, it created massive bottlenecks. The entire development team was limited by whoever physically held the pendrive.

The "Masterji" File System

Without version control, developers had to invent their own ways to track progress. This led to the infamous practice of "Manual Versioning."

You know exactly what I’m talking about. You’ve probably seen a folder that looks like this:

  • project_masterji_v1

  • project_masterji_v2

  • project_masterji_final

  • project_masterji_really_final

  • project_masterji_FINAL_FINAL_DO_NOT_TOUCH

The fatal flaw: This method tracked that a change happened (the filename changed), but it never told you what changed inside the code or why it was changed. You were flying blind.


The 3 Nightmares: Problems Faced Before Version Control

Living without a Version Control System (VCS) introduced three major problems that destroyed productivity and caused emotional damage.

1. The "Lock" Problem (The Bottleneck)

Imagine Hitesh and Piyush are working on the same project. In the Pendrive Era, only one person could edit the master copy at a time.

If Hitesh had the pendrive to fix a bug, Piyush was forced to sit idle and wait. He couldn’t touch the code because if he started working on his own copy, they would end up with two different versions of the project that would be impossible to combine later.

The Result: Parallel work was impossible. The team moved only as fast as the person holding the pendrive.

2. The "Lost" Problem (The Single Point of Failure)

In a manual system, there is no common, backed-up truth. The "Truth" lives on that one specific laptop or that one specific pendrive.

  • If Hitesh loses the pendrive? Game over.

  • If the laptop hosting masterji_final crashes or gets stolen? Game over.

There was no cloud backup history. If the hardware failed, the entire project history months of hard work would be wiped out instantly.

3. The "Overwrite" Problem (The Silent Killer)

This is the scariest one. In a manual system, "updating" the project usually meant copying a folder and replacing the old one.

Imagine this scenario:

  1. Piyush writes a brilliant new feature and saves it on the server/drive.

  2. Hitesh, unaware of Piyush's update, copies his older version of the folder and pastes it into the drive.

  3. Windows/Mac asks: "This folder already exists. Do you want to replace it?"

  4. Hitesh clicks Yes.

The Result: Piyush’s code is deleted instantly. There is no Ctrl + Z for a folder overwrite. Hundreds of hours of work vanish in a second, and there is no way to get it back because the files were literally replaced by older ones.


Why Version Control Exists: The Solution

Version Control Systems (like Git) were created not just to manage code, but to solve these specific human errors. They provide three pillars of sanity:

1. History (The Time Machine)

VCS provides a complete, immutable timeline of every single change ever made.

  • Who changed it? (Was it Hitesh or Piyush?)

  • What changed? (Deleted line 40, added line 42).

  • Why was it changed? (The commit message: "Fixed the login bug").

It acts as an Infinite Undo. If you break the code today, you can snap your fingers and revert the project to exactly how it looked yesterday, last week, or last year.

2. Collaboration (Parallel Universes)

VCS solves the "Lock" problem. Hitesh and Piyush can now work on the same files at the same time on their own computers. The system is smart enough to merge their work together later. No one blocks anyone. No one waits for the pendrive.

3. Safety (Distributed Backup)

This solves the "Lost" problem. In modern VCS (like Git), every developer has a full copy of the project history on their machine.

  • If the main server crashes? Hitesh has a copy.

  • If Hitesh's laptop breaks? Piyush has a copy.

The project survives as long as at least one copy exists somewhere.

More from this blog