Skip to content
Patppuccin
Main Navigation
Expeditions
Curations
Ruminations
Labs
Projects
Persona

Appearance

Sidebar Navigation

Faith & Theology

Genesis Chapter 1

Science & Nature

Health & Medicine

People & Culture

Languages & Comms

Philosophy

History

Economics

Art & Literature

Tech & Engineering

History of Computing

Fundamentals of Computing

Systems & Architecture

The Linux OS

Hardware & Embedded Systems

Networking & Internet

Computer Networking

Programming & Paradigms

Bash

Concepts

Authentication and Authorization

Infrastructure as Code (IaC)

Free and Open Source (FOSS)

Variable Naming Cases

Version Control Systems

Golang

JavaScript

PowerShell

PowerShell Error Handling

PowerShell Flow Control and Loops

PowerShell Functions

PowerShell Modules

PowerShell Basics

Python

Data Types and Variables

Flow Control and Loops

Fundamentals

Getting Started

Methods and Functions

Operators

Python

Rust Programming Language

Software Engineering

Application Development

Infrastructure & Cloud

Amazon Web Services

Amazon Web Services

Cloud Technology

DevOps & Automation

Kubernetes

Terraform

Security Engineering

Data Systems

Computational Intelligence

Design & Interaction

Tooling & Utilities

Git

Secure Shell (SSH)

On this page

Version Control Systems ​

Version Control Systems or VCS are a system that records changes made to a file or a set of files over a period of time. These changes can be recalled at any later point and the state of the files can be restored to that state when required. This is accomplished by taking snapshots of what changes in these files at each point in time.

Local Version Control Systems (LVCS) ​

  • A local VCS can be something as a database that records all the changes made to a file over a period of time.
  • One of the most popular VCS systems was a tool called as RCS (Revision Control System) which keeps patch sets (snapshots) in a special format on disk and can recreate the state of the file at that point as needed was of this type.
  • Advantages include
    • File version recovery at any point in time.
  • Disadvantages include
    • Lack of collaboration features.
    • No control of the local data by the administrators.

Centralized Version Control Systems (CVCS) ​

  • In a centralized Version Control System, the changes are tracked in a central location on a server.
  • A number of clients connect to this server and check out the files from it.
  • Systems such as CVS, Subversion and Perforce are of the Centralized Version Control System type.
  • For many years, this has been the standard for version control.
  • Some of the advantages of Centralized VCS over the local VCS are
    • Central location where everyone's work is monitored.
    • Finer grained control over the files by admins
  • Centralized VCS inherently had one major flaw where the VCS server being a central point of failure.

Distributed Version Control Systems (DVCS) ​

  • A Distributed Version Control System or DVCS is a system where each of the clients mirror the entire snapshot of the repository, thus each of the client has a full working copy of the files along with the change history.
  • If the server gets corrupted, the data can be transferred from the client to the server and vice versa.
  • Systems such as Git, Mercurial, Bazaar or Darcs are of this DVCS type.
  • Advantages of this system
    • Central server which enables visibility across the clients.
    • No single point of failure in both server and the client.

Updated at:

Pager
Previous pageVariable Naming Cases
Next pageGolang

Made with ❤️ and Vitepress

Copyright © 2025 Patrick Ambrose.