A Version Control System (VCS), also known as source control system, is the system that tracks, manages changes to computer files. VCSs are software tools that help software teams manage changes to source code over time. They especially useful for DevOps teams to reduce development time and increase successful development.

The need of VCS

  • Keep track of every modification to code in a repository.
  • Revert selected files back to a previous stage.
  • Compare changes over time.
  • Discover who last modified a file that might be the one accountable for a problem
  • Compare earlier versions of the code to help with bug fixes while minimising disruption
  • More…

Types of version control system

Centralised version control

A centralised VCS relies on a central server where developers share and commit changes to. It is better than local VCS over its synchronisation and ease of maintain as everyone is updated, and administrators have fine grained control over the entire repository. However, centralised VCSs come with drawbacks. If the server is experiencing an outage or the only code copy is corrupted, developers are unable to access the code and retrieve previous versions. Examples of centralised VCSs: Subversion (SVN), Team Foundation Server, etc…

Distributed version control

Unlike centralised VCS, developers on a distributed VCS clone the repositories on their distributed version control workstations; a project has multiple backup copies. If the source code is corrupted, it can be recovered with any developer’s clone as a backup. Because the existence of local copies, developers can make changes offline. Examples of distributed VCSs: Git, Bazaar, etc…


Back to parent page: DevOps

VCSGitDevOpsSOFT2412