September 17, 2018

Why Did Google Choose a Centralized Repository?

Version Control

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 Central Repository

  • 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 Central Repository

  • 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?

Central 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.

See in Action

Try Free