Version control

Edit · View history

Version control

Version control (also known as revision control or source control) is the practice of tracking and managing changes to files, documents, or any collection of information over time. It is an essential tool in software development, allowing multiple contributors to work on the same project simultaneously without overwriting each other's work. Version control systems (VCS) record a history of modifications, enabling users to revert to earlier versions, compare changes, and identify who made specific alterations.

History

The earliest version control systems emerged in the 1970s. Source Code Control System (SCCS) was developed at Bell Labs in 1972, followed by the Revision Control System (RCS) in 1982. These centralized systems stored files on a single server, requiring users to lock files before editing. In the 1990s, Concurrent Versions System (CVS) introduced a copy-modify-merge model, allowing multiple simultaneous edits. CVS was succeeded by Apache Subversion (SVN) in 2000, which improved upon atomic commits and directory versioning.

A major shift occurred in 2005 with the rise of distributed version control systems (DVCS), notably Git and Mercurial. Git, created by Linus Torvalds for Linux kernel development, became the dominant VCS due to its speed, branching capabilities, and support for offline work. Platforms such as GitHub, GitLab, and Bitbucket later added collaborative features like pull requests and issue tracking.

Features

Version control systems typically provide:

Modern VCS also support mechanisms for access control, code review workflows, continuous integration hooks, and integration with issue tracking systems.