Skip to main content

Command Palette

Search for a command to run...

Why Version Control Exists: The Pendrive Problem

Updated
4 min read
Why Version Control Exists: The Pendrive Problem
S
Professional coder. Occasional bug creator 😎

Version control was born because developers were tired of losing their code.

Before tools like Git existed, developers had a very chaotic way of managing code. And the best way to understand this chaos is with something we all used at some point.

The pendrive.


The Pendrive Era of Software Development

Image

Imagine a small team of developers working on the same project.

One developer finishes some work and copies the project folder into a pendrive. Then he gives that pendrive to another developer so they can continue working.

That second developer edits some files and later sends the updated project through email or another pendrive.

Sounds simple right?

Now imagine five developers doing this at the same time.

Suddenly you start seeing folders like:

project_final
project_final_v2
project_final_latest
project_final_latest_real
project_final_final
project_final_use_this_one

And the funniest part?

Everyone still asks:

"Which one is the correct file?"

This was the real workflow in many teams before version control became common.


The Famous "Final Final" Folder Problem

Developers tried to solve the problem by creating new folders every time they changed something.

So the project folder slowly turned into something like this:

project
project_final
project_final_v2
project_final_v3
project_latest
project_latest_final
project_latest_final_real

Nobody knew which version had the latest changes.

Sometimes someone would accidentally overwrite another person's work. Imagine writing code for three hours and then someone replaces the file with an older version.

Your code is gone.

Completely.

No undo button.

No history.

Just pain.

This is exactly why version control systems started becoming necessary.


When Multiple Developers Edited the Same File

Image

Another huge problem appeared when two developers edited the same file.

Imagine this situation.

Developer A edits login.js.

At the same time Developer B also edits login.js.

Now both send their version of the file.

Which one should the team keep?

If you keep Developer A's file then B's work disappears.

If you keep Developer B's file then A's work disappears.

Teams used to manually compare files line by line to merge changes. This process was slow stressful and full of mistakes.

Modern version control systems solve this problem automatically.

They track every change made in every file.


The Missing History Problem

Before version control there was another big issue.

There was no history.

Imagine your application suddenly breaks.

You ask your teammate:

"Who changed this file?"

Nobody knows.

Or worse someone says:

"I think I changed something yesterday but I don't remember what."

Without version control there was no way to see:

  • Who changed the code

  • What exactly changed

  • When the change happened

  • Why the change was made

Debugging became detective work.

Developers had to guess where the problem started.


Why Version Control Became Mandatory

Now imagine a modern company with 50 or 500 developers working on the same codebase.

Without version control this would be impossible.

Version control systems like Git solved many major problems:

1. Change history

Every change is recorded with the author's name and timestamp.

You can go back to any previous version of the project.

2. Safe collaboration

Multiple developers can work on the same project without overwriting each other's work.

3. Backup of the entire project

Even if your local machine crashes the code still exists in the repository.

4. Experimentation

Developers can create branches to test new features without breaking the main project.


The Pendrive vs Version Control Workflow

Image Image

Let's compare the two worlds.

Pendrive Workflow

  • Copy project folder

  • Send through pendrive or email

  • Someone edits files

  • New folder created with another name

  • Old changes get lost

  • Nobody knows the correct version

Version Control Workflow

  • Developers clone the repository

  • Each developer works on their changes

  • Changes are committed with proper messages

  • Code history is preserved forever

  • Team collaboration becomes organized

The difference is massive.


A Fun Thought

Next time when you type:

git commit
git push

Remember something.

These commands exist because developers were once struggling with pendrives folders and "final_final_v2_latest" files.

Git did not appear just to be a fancy developer tool.

It appeared to solve a very real human problem.

Keeping track of our own mistakes.

And honestly every developer still makes them.

Just now we have better tools to manage them.