Developer & Data Platforms

Version control

Also known as: source control, revision control, version control system, VCS

Version control is a system that records changes to files over time, letting people see who changed what and when, restore earlier versions, and work on the same project without overwriting each other.

It's essential in software development, where Git is by far the most popular tool, but it's also used for documents, designs, and configuration files. While version control sounds technical, it's the reason developers can experiment boldly, because any mistake can be undone.

Version control, explained at three levels

At home

Version control is like an unlimited 'undo' history for a whole project, with a note on every change explaining who made it and why.

At work

Version control lets teams work on the same code safely, review changes, and roll back mistakes quickly.

Real-world examples

At home

Sophie broke her personal website while experimenting. Because she used version control, she returned to yesterday's working version in seconds.

At work

Marcus leads a Calgary software team. Version control showed exactly which change caused a bug, and they reversed it within minutes.

How it compares

featureVersion controlVersion History
HistoryEvery change, with notesSaved snapshots
Parallel workBranches and mergesLimited
Typical usersDevelopers, ITOffice workers
ToolsGit, SubversionGoogle Docs, OneDrive

Document history saves versions. Version control manages parallel work.

For analysts

I'd put requirements documents, configurations, and scripts into version control, not just code. It creates an audit trail that answers 'when did this change?' instantly.

History & origin

Marc Rochkind created SCCS, one of the first version control systems, at Bell Labs in 1972. RCS followed in 1982, and CVS, from the mid-1980s, let teams work on shared projects over networks. Subversion, launched in 2000, became the standard for many companies. In 2005, Linus Torvalds created Git for Linux kernel development after the free licence for the tool the project had been using was withdrawn, and Mercurial appeared the same year. Git's distributed design, where everyone has a full copy of the history, won out, especially after GitHub launched in 2008. In my view, version control is the single most important habit in software development.