From Local to Distributed: Understanding the Evolution of Version Control Systems

SURUTHI S
3 min readJul 4, 2023

--

Contents

  1. Overview of Version Control Systems (VCS)
  2. Understanding the need for tracking code changes
  3. Advantages of VCS
  4. Different Types of VCS
  5. Git’s prominent role in distributed version control

Version Control Systems (VCS) are used to track changes made to files over time so that specific versions may be recalled later.

For example, let’s say you’re coding for a project and you’re adding certain lines of code. Later, you decide to remove those specific lines of code because they are no longer relevant to your project. With version control, we can easily revert back to its previous version, preserving the original state and undoing the changes made without affecting the progress made in other parts of the project.

Photo by Gabriel Heinzer on Unsplash

They are primarily used for

  1. Tracking modifications over time
  2. Revert Changes to their previous state.
  3. Creating a separate copy of the file, modifying it without affecting the main source code, and finally merging the changes to the original file if needed This mechanism can be achieved by branching and merging.
  4. Collaboration with multiple developers

There are three main types of Version control systems:

  1. Local Version Control System (LVCS)
  2. Centralised Version Control System (CVCS)
  3. Distributed Version Control System (DVCS)

Local Version Control System (LVCS):

The Local Version Control System keeps track of files on the local system. However, it is less ideal since it lacks collaborative tools while working on team-based projects.

Centralised Version Control System (CVCS)

A centralised Version Control System has a central server that maintains every version of a file. The server possesses all the information about a file and its previous state, which enables multiple users to have concurrent access and easy collaboration. However, it has certain limitations. The server acts as a single point of failure if it experiences issues that might affect the ability to commit changes, collaborate, or have difficulty accessing previous versions of files, and conflicts may occur while managing and merging branches.

Distributed Version Control System (DVCS)

In a distributed version control system, users can mirror the repository, including its entire history, which helps team members working on the same project own a copy on their local machine. Because of the Decentralised structure of a Distributed Version Control System (DVCS), the idea of a single point of failure is automatically negated. DVCS is very efficient at branching and merging operations. Developers can establish multiple branches, work on them independently, and then merge them back into the Master branch.

Git emerges as the foremost and widely acknowledged example of distributed version control systems that enable developers to perform essential operations like creating branches, pushing files from local repositories to remote repositories, and pulling files directly into the working directory using an online hosting service known as GitHub.

In conclusion, Version control is significant for keeping track of code changes and promoting collaboration among teams.

--

--

SURUTHI S

LLM Enthusiast with a passion for advanced language models and AI-driven solutions. Dedicated to continuous learning and knowledge sharing in the AI community.