Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an open source equivalent to piper, Google's version control tool?

Google stores all its codebase in a single repository called piper [1][2][3].

It has an approach that is very different than open source alternatives do (centralized 'cloud' service) and aims at scaling to a repository with billions of files, thousands of developers and millions of commits [1].

It doesn't seem Google open-sourced it nor plan to do so (contrary to their build system blaze and some other tools [4]).

Are you aware of any open source version control system with an approach similar to piper ?

[1] https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext

[2] https://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/

[3] https://www.youtube.com/watch?v=W71BTkUbdqE

[4] https://opensource.google.com/projects/list/developer-tools?page=3

like image 537
Colin Pitrat Avatar asked Sep 24 '17 14:09

Colin Pitrat


People also ask

Does Google still use piper?

Google doesn't use GitHub, or Git. Instead they have their own, pretty insane system called Piper. There is only one Piper repository. Different projects are different subdirectories within the same massive repository.

What version control software does Google use?

Basically, Google has built its own "version control system" for juggling all this code. The system is called Piper, and it runs across the vast online infrastructure Google has built to run all its online services. According to Potvin, the system spans 10 different Google data centers.

Does Google use Git or Mercurial?

Because Google and Facebook are using Mercurial over Git internally.

Does Google still use Perforce?

Google doesn't use perforce anymore. It's been replaced with Piper, you can read about it in articles from about 2015 or so. Perforce didn't scale enough.


1 Answers

The short answer is no, it doesn't seem to exist.

As you can read in a Quora article, "it’s hard to tell where the version control system ends, and where some of the other parts of the development toolchain begin".

So, first, you need to be clear in what "features" you are interested in since you can be interested in a feature that is not Piper's responsibility.

Also, keep in mind that your server disk space and OS would limit the file count/size before the chosen VCS.

If you need a Centralized VCSs and billions of files, you could go with SVN or OpenCVS.

If you need a Distributed one with thousands of developers and millions of commits, take a look at Git, Bazaar, Bitbucket or Mercurial.

But do you really have all those requirements?

AFAIK there's no Piper's open source equivalent on the market.

In order to better understand Centralized and Distributed VCS, take a look at this Comparison between Centralized and Distributed Version Control Systems

Also, take a look at what is Google's repository like?

like image 56
MiguelKVidal Avatar answered Sep 22 '22 19:09

MiguelKVidal