Google stocke toute sa base de code dans un référentiel unique appelé piper [1] [2] [3].
Il a une approche très différente des alternatives open source (service "cloud" centralisé) et vise à évoluer vers un référentiel avec des milliards de fichiers, des milliers de développeurs et des millions de commits [1].
Il ne semble pas que Google soit open source et ne prévoit pas de le faire (contrairement à leur système de build blaze et à certains autres outils [4]).
Connaissez-vous un système de contrôle de version open source avec une approche similaire à piper?
[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=
La réponse courte est non, elle ne semble pas exister.
Comme vous pouvez le lire dans un article Quora , "il est difficile de dire où se termine le système de contrôle de version et où commencent certaines des autres parties de la chaîne d'outils de développement".
Donc, tout d'abord, vous devez être clair sur les "fonctionnalités" qui vous intéressent, car vous pouvez être intéressé par une fonctionnalité qui n'est pas de la responsabilité de Piper.
Gardez également à l'esprit que l'espace disque et le système d'exploitation de votre serveur limiteraient le nombre/la taille des fichiers avant le VCS choisi.
Si vous avez besoin d'un VCS centralisé et de milliards de fichiers, vous pouvez opter pour SVN ou OpenCVS.
Si vous avez besoin d'un serveur distribué avec des milliers de développeurs et des millions de validations, jetez un œil à Git, Bazaar, Bitbucket ou Mercurial.
Mais avez-vous vraiment toutes ces exigences?
AFAIK il n'y a pas d'équivalent open source de Piper sur le marché.
Afin de mieux comprendre les VCS centralisés et distribués, jetez un œil à cette comparaison entre les systèmes de contrôle de versions centralisés et distribués
Jetez également un œil à à quoi ressemble le référentiel de Google?
Il n'y a pas d'équivalent open-source à piper.
Notez que piper est ancien et possède une API démodée datant de zone forcée . Je suppose que vous voudriez un flux de travail plus moderne, similaire à ce que propose le DVCS moderne.
Je suis presque sûr que votre base de code n'est pas aussi grande que le référentiel de 86 To de Google. Avez-vous vraiment besoin de la même chose?.
Je suis sûr que vous pourriez utiliser un monorepo basé sur git ou Mercurial. Et peut-être évoluer vers un système de fichiers virtuel tel que [VFS for git] [2] si vous en avez besoin.
[2]: VFS pour Git
Google a créé plusieurs outils de contrôle de version. Piper est spécialisé pour les besoins du google monorepo.
Lorsque Google a créé Android, il a créé gerrit et repo pour gérer le contrôle de version. Repo est utilisé pour fonctionner avec de nombreux référentiels git à la fois, chacun pouvant avoir ses propres mainteneurs et cycles de publication. Les dépendances open source ne se prêtent pas à un monorepo, sans le contrôle d'une seule organisation imposant des choses telles qu'un statut de build global ou un refactoring global. De plus, les exigences de piper ne s'appliquent tout simplement pas dans la plupart des endroits, comme la performance des validations en suivant les demandes.