A version control system is a tool that allows you to manage and control the changes
made to a set of files or projects over time.
It is also known as a revision control system or change control.
The main purpose of a version control system is to record and track modifications made
to files, allowing users to access previous versions, compare changes, merge different
versions, and revert to previous versions if necessary. This is especially useful in
software development environments, where multiple developers can work on the same
project simultaneously.
There are two main types of version control systems: centralized systems and distributed
systems.
Centralized version control
systems
These
systems use a central repository that stores all the files
and versions of the project. Users check out a working copy
and make changes locally, then they must contact the central
repository to update their changes and receive changes from
other contributors.
Examples of centralized systems are CVS
(Concurrent Versions System) and Subversion (SVN).
Distributed version control
systems
In these
systems, each user has a complete copy of the repository,
which allows them to work independently.
standalone without the need for a constant connection to the
central repository. Users can make changes locally and then
merge them with other repositories when necessary.
Examples of distributed systems are Git
and Mercurial.