Skip main navigation

Centralised vs Distributed Source Control Systems

.

In the previous step, you gained a great understanding of CI and the building blocks of CI.

In this step, we are going to differentiate between Centralised Source Control Systems and Distributed Source Control Systems.

Source Control is the practice of tracking and managing changes to software code. A Source Control System helps you keep track of features, bug tickets and any other changes in your development project over time.

Source Control Systems help software teams work faster and smarter and are specifically useful for DevOps teams since it helps teams to reduce development time and increase successful deployments.

Centralised Source Control System

A Centralised Source Control System keeps the history of changes on a central service from which everyone requests the latest version of the work and pushes the latest changes to.

In Centralised Source Control, there is a server and a client. The server is the master repository which contains all of the versions of the code. To pull code from the server, you have to be connected to the server.

As a result, you will always only retrieve the latest commits and not the full history of changes.

Key Strengths of Centralised Source Control include:

  • Scalability to very large codebases
  • Granular permission control
  • Permits monitoring of usage
  • Exclusive locking

Centralised Source Control is Best Suited For:

  • Large codebases
  • Audit and access control process
  • Hard to merge files

Distributed Source Control System

In a Distributed Source Control System, each developer or client has their own server and will subsequently have a copy of the entire history or version of the code and all of its branches in their local server or machine.

Each client can work locally or disconnected from the master repository and commit changes to a local repository. To communicate a set of changes to the master repository, you issue a request to the master repository and push your local repository code to the master repository.

Key Strengths of Distributed Source Control include:

  • Cross-platform support
  • Open source friendly code review model via pull requests
  • Complete offline support
  • Portable history
  • Enthusiastic growing user base

Distributed Source Control is Best Suited For:

  • Small and modular codebases
  • Evolving through open source
  • Highly distributed teams
  • Teams working across platforms
  • Greenfield codebases

In the next step, we investigate basic Git commands.

This article is from the free online

Microsoft Future Ready: Continuous Integration Implementation

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now