Why Version Control Exists: The Pendrive Problem
The need for a single source of truth and the issues developers face in it’s absence.

Version Control is a system that records changes in a file or a set of files over time. It helps keep track of what are the changes been made, who made the changes and when and also enables collaboration between multiple developers.
Here the question arise, How did things work back then before version control existed?
Before modern version control systems, developers relied on laid down resources like local system files, folders, zip files, pendrive, emails. Lets deep dive into the evolution from local-based code sharing(pendrive) to sophisticated version control systems.
The “Human-Powered File Transfer” Era

Imagine you and I are working together on a simple website project. You’re building the homepage on your laptop, adding content and styling. I’m working on the contact page on mine, fixing layout issues and improving the form.
We don’t have Git, GitHub, or any shared repository. The only way we exchange updates is through a pendrive.
How our work happens:
Imagine you’re working on a small project on your laptop — maybe a simple website or a college assignment. At the same time, I’m helping you by editing another part of the project on mine. There’s no Git, no GitHub, no shared repository. The only way we exchange updates is through a pendrive.
You finish tweaking the Contact file, save it, and copy it . You hand it over to me so I can merge it with my changes. I plug it into my laptop, replace my old copy, make a few updates to the homepage, and then copy the modified files back to the same pendrive. Now I hand it back to you so you can continue.
At first, this feels simple, almost harmless. But the moment we both start making changes at the same time, things starts to fall apart.
Issues we face during this practice
Version Conflicts
There’s no automatic way for either of us to know which file contains which changes. Who has the latest version. Which changes are newer. If you edit a file on your laptop while I edit the same file on mine…One of our versions will be overwritten and lost forever. Neither of us will knows.
File Naming Chaos
To avoid losing work, we start renaming files:
final.html
please_work_final.html
latest_final.html
save_my_soul.html
Soon, even we can’t tell which file actually contains the real, working version.
Manual Syncing Takes Time
Every update forces a full manual cycle: make the change, copy it to the pendrive, physically carry and deliver it, and overwrite the existing files. This constant back-and-forth disrupts the work-flow, slows progress, and turns collaboration into a repetitive, time-consuming task.
No History / No Backup
If a file is overwritten accidentally, there is no undo, no version history, and no way to recover earlier changes. Once lost, the work is gone — unless separate manual backups were created in advance
High Risk of Data Loss
Pendrives are inherently unreliable—they can become corrupted, be lost, or fail without warning. When the latest version of a project exists only on such a device, a single failure can instantly erase days or even weeks of work. This forces developers to constantly create manual backups, double-check every copy, to tackle the constant fear of accidental data loss.
This back-and-forth process might work for a small file or a single person, but the moment two people collaborate, it becomes chaotic. This is exactly why modern version control systems were created.
Adopting a Modern Version Control Workflow
All these issues highlight a bigger truth: the problem was never the pendrive, it was the lack of a system that understood collaboration. When developers rely on manual file transfers, everything becomes fragile.
At some point, it became clear that software development needed more than just a storage device.
It needed a system one that could track changes, record history, manage conflicts, and ensure that no one’s work is lost just because the wrong file got copied.
This exact need led to the creation of Version Control Systems (VCS).

VCS introduced ideas that were impossible in the ‘pendrive era':
A single, reliable source of truth
Automatic change tracking
Branching to allow parallel work
Conflict detection instead of silent overwrites
The ability to revert, compare, and merge safely
Systems like Git took this further by making collaboration fast, safe, and scalable, enabling teams of any size to work on the same project without fear of losing progress.
This is why VCS exists; to replace a fragile, manual, error-prone workflow with a reliable, automated, and collaborative one.

