Why Version Control Exists: The Pendrive Problem
Why Version Control Exists
For creating a todo to a production grade application, we all need a system that keeps the track of our code lines and files.
Before creating that system we were all using temporary solutions.
Zip the code files and send them through emails.
Pendrives were passed around.
WhatsApp and Google Drive links carried source code.
For example:
The Pendrive Analogy
You are working on a project with multiple developers.
You copy the project folder into a pendrive, and hand it to other developer for further features.
That teammate modifies the code, copies the project folder into the pendrive and returns it.
Meanwhile you might have already changed some files on your machine.
Now you don’t know:
Which file should be kept?
Whose version is correct?
Did anything get overwritten?

This eventually leads to conflicts, history lost and collaboration problems.

To avoid confusion, developers created folders like:

This worked; until it didn’t.
Problems Faced Before Version Control Systems
Every source code will eventually get larger thus making things more difficult.

Overwritten code: Two developers editing the same file meant one person’s work could completely erase the other’s changes without any warning.
Lost history: As the project grows with it’s name from initial to latest versions, the old logic are gone forever
Unfeasible collaboration: Different people share different code styles which becomes a guesswork for who and why someone changed it.
Fear of Experimentation: Developers hesitates to try new things because one risky move could break the entire working codebase.
Overtime one thing was very clear
code needed memory
Developers need a system that could;
Track changes
Keep code history
Allow multiple people to work safely
Restore older versions instantly
Enable fearless experimentation
That necessity gave birth to version control systems tools designed not just to store code, but to manage collaboration itself.


