Why Did Google Choose a Centralized Repository?

When developing software, there are two ways to store code and maintain version control:

Distributed repository, such as Git

Centralized repository, such as Helix Core

Benefits of Distributed Repositories

The distributed model requires the software engineer to download the code they want to work on. Then they make their changes, and upload it back to the main codebase when they’re done.

Linus Torvalds created Git as a free, open-source tool that let developers work offline. Developers needed something like this because downloading and uploading code could take hours. Soon, Git and distributed repos became ubiquitous.

But a lot has changed since Git was created. Computers and the Internet are faster. And spinning up a server in the cloud takes seconds, not hours. This speed nullifies the wait time that made the distributed model so successful.

Benefits of Centralized Repositories

Centralized repositories have also been around a long time. In a centralized model, you work on the code while connected to the server itself. This maintains a single source of truth. The centralized model has been incredibly successful for version control. This is especially true as teams and projects grow and get more complex.

Google Built Their Culture Around a Central Repository

Google has been using a centralized repository and version control system for nearly two decades. They built their culture of collaboration around it. Their repository model has affected the development and evolution of many parts of their business, including:

Collaborative environment

Trunk-based development

Workflow

Google is known for developing their own tools in house. When they decided to create their own proprietary repository, they used the centralized model. Why? Are their reasons relevant to businesses a fraction of Google’s size?

There are several advantages and disadvantages to the centralized model, regardless of size.

Advantages of the Centralized Model

Atomic changes

Global collaboration

Single source of truth

Code visibility and clear tree structure

Code sharing and reuse

Dependency management

Flexible team boundaries and code ownership

Disadvantages of the Centralized Model

Investment in tools for development and execution

Codebase complexity and dependencies

Maintenance to ensure code health

For Teams Without Google’s Budget…

Google invested in proprietary tools to manage and work with their repository. The amount of money they’re able to invest in their tools is out of reach for small and mid-size companies. But that doesn’t mean the solutions are also out of reach.

Helix Core – the version control system from Perforce – comes with several tools that can reduce or mitigate this cost, including:

Native code review

Advanced visualization tools

Integrations with popular DevOps tools

Fine-grained access control

Who Benefits the Most From Centralized Repositories?

Centralized repositories may be well-suited to companies, like Google, with a collaborative culture. But other business models can benefit as well. Regardless of the size of your team or business, using a centralized repository can provide visibility and a single source of truth.

With the trend toward more collaborative and open work environments, perhaps it’s time to give the centralized repository a closer look. After all, who doesn’t want to be the next Google?

Need help selecting a repository model for your business? Learn more about Helix Core.

Chuck Gehman

Technical Marketing Engineer, Perforce Software

Chuck (@charlesgehman) is a Technical Marketing Engineer at Perforce. He has worked as a CTO, architect, developer, and product leader in startups and large enterprises. Chuck has been a member of the IEEE for 20 years, and he’s an AWS Certified Solution Architect. When he has spare time, he enjoys volunteering for technology education initiatives, attending Meetups, and writing.