!!! Overview [{$pagename}] ([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.[{$pagename}] is most often thought of in the [context] of [Source code] or [Codebase].!! Local [{$pagename}] 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 [{$pagename}] 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 [{$pagename}]. !! [Distributed|Distributed system] [{$pagename}] 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|Repository] 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: [{ReferringPagesPlugin before='*' after='\n' }]