# Version Control System (VCS) A Version Control System (VCS) is software that implements [[Version Control]]; tracking and managing changes to files over time. VCS tools maintain a database of every modification, enabling collaboration, history browsing, branching, and recovery of previous states. VCS can be categorized by architecture: local (single machine), centralized (single server), or distributed (every user has full history). ## Types of VCS ### Local VCS - History stored only on local machine - No collaboration support - Example: RCS (Revision Control System) ### Centralized VCS (CVCS) - Single central server holds all history - Clients checkout working copies - Single point of failure - Examples: **SVN** (Subversion), **CVS**, **Perforce** ### Distributed VCS (DVCS) - Every user has complete repository history - No single point of failure - Enables offline work and flexible workflows - Examples: **[[Git]]**, **Mercurial**, **Bazaar** See [[Distributed Version Control System (DVCS)]] for more details. ## VCS Comparison | System | Type | Created | Status | |--------|------|---------|--------| | CVS | Centralized | 1990 | Legacy | | SVN | Centralized | 2000 | Declining | | [[Git]] | Distributed | 2005 | Dominant | | Mercurial | Distributed | 2005 | Niche | ## References - https://en.wikipedia.org/wiki/Version_control ## Related - [[Version Control]] - [[Source Control Management (SCM)]] - [[Distributed Version Control System (DVCS)]] - [[Git]] - [[Linus Torvalds]]