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
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
, 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
) step in. In a DVCS (such as Git
, 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
There might be more information for this subject on one of the following: