Why Did Google Choose a Central Repository?
You have two repository options for version control. You could use a central repository (like Google). Or you could use a distributed one.
Here, we cover the merits of a centralized repository. More on distributed version control >>
What Is a Central Repository?
A central repository stores everything in one place. In a centralized model, you work on the code while connected to the server itself. This maintains a single source of truth.
Who Uses a Central Repository? Google
Google's code repository is 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.
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 central repository model, regardless of size.
Why Use a Central Repository?
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.
Benefits of the Central Repository
There are several important benefits of using a central repository.
When everything is stored in a centralized repository, you can make atomic changes. This means you can a major change across 1,000s of assets in one operation.
Single Source of Truth
A central repository is a single source of truth. It keeps everything in one spot, so you'll always know you have the latest version of code, files, and other assets.
A centralized repository makes it easy for team members around the globe to collaborate. When team members share a single source of truth, it's much easier to collaborate on projects. Even open source projects.
A central repository gives you clear visibility into your code and the changes that are made. It's also easier to create a clear tree structure, so you know which changes impact which branches.
Code Sharing and Reuse
Sharing and reusing code helps you accelerate development. And keeping your code in a centralized repository makes it much easier to share and reuse across teams and projects.
If you make a change to one branch, will it affect another? By using a central repository, you'll have clear dependency management. So, you'll know how changes will affect one another.
Flexibility to Handle Change
Sometimes teams change. When you keep everything in a centralized repository, it makes it easy to get new team members up-to-speed.
Of course, there are also some disadvantages to using a centralized server that merit consideration.
Disadvantages of a Centralized Server
Here are the biggest disadvantages of a centralized server.
Moving to a centralized server will take an investment. You'll need to invest in tools for development and execution, in particular.
However, the initial investment can deliver big returns, particularly in productivity.
Storing everything in a centralized server could create some complexity. In particular, the codebase and dependencies could become more complex.
However, smart investments in tools lower the complexity. For instance, using Helix Core as centralized version control is a good move to deal with your complex codebase.
You'll need to do maintenance to ensure code health.
However, investments in smart tools reduce maintenance. For instance, utilizing a code review tool like Helix Swarm (free for Helix Core users) improves the overall health of the codebase.
Who Should Use 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?
For Teams Without Google's Version Control 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 — is a good fit for development teams of any size. In fact, teams of up to 5 users can use it for free — forever.
Teams who use Helix Core for their centralized repository experience the benefits:
- Make atomic changes.
- Get a single source of truth.
- Improve collaboration around the globe.
- Improve visibility into their code.
- Share and reuse code.
- Handle dependencies easily.
- Gain flexibility to handle change.
And they avoid the drawbacks:
- Achieve productivity gains with Helix Core that offset the investment.
- Manage the complexity of their codebase.
- Improve code health.
Learn more about Helix Core. You can get started for free for up to 5 users.