Overview#
Version Control System (
VCS) is a system that records changes to a set of files or set of
data over time so that you can recall specific
versions later.Version Control System is most often thought of in the
context of
Source code or
Codebase.!! Local Version Control System
One of the more popular
VCS tools was a system called RCS, which is still distributed with many computers today. RCS works by keeping patch sets (that is, the differences between files) in a special format on disk; it can then re-create what any file looked like at any point in time by adding up all the patches.
Centralized Version Control System#
The next major issue that people encounter is that they need to collaborate with developers on other systems. To deal with this problem, Centralized Version Control Systems (CVCSs) were developed.
These systems (such as
CVS,
Subversion, and
Perforce) have a single server that contains all the versioned files, and a number of clients that check out files from that central place. For many years, this has been the standard Version Control System.
This is where
Distributed Version Control Systems (
DVCSs) step in. In a DVCS (such as
Git,
Mercurial, Bazaar or Darcs),
clients don’t just check out the latest snapshot of the files; rather, they fully mirror the
repository, including its full history. Thus, if any
server dies, and these systems were collaborating via that server, any of the
client repositories can be copied back up to the server to restore it. Every clone is really a full
backup of all the
data.!! More Information
There might be more information for this subject on one of the following: