2017-09-24 3 views
2

Google stocke tout son code dans un seul référentiel appelé piper [1] [2] [3]. Il a une approche très différente de celle des solutions 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].Existe-t-il une source ouverte équivalente à piper, l'outil de contrôle de version de Google?

Il ne semble pas que Google ait ouvert le système ni planifié de le faire (contrairement à leur système de compilation bazel et à d'autres outils [4]).

Connaissez-vous un système de contrôle de version open source avec une approche similaire à 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

+0

Avez-vous besoin de stocker 2 milliards de lignes de code? en termes de cloud gratuit vcs bitbucket est très généreux. –

+0

Pas moi-même mais j'ai rencontré des entreprises qui sont loin de cela et qui utilisent actuellement des centaines de dépôts git/hg/cvs, avec des dépendances entre eux. La mise à jour de la version des composants «communs» partagée par presque tous les dépôts est un cauchemar. Ces versions sont donc rares et d'autres référentiels contiennent du code qui devrait être commun et dupliqué car il est plus facile que de l'intégrer dans le référentiel commun existant. Il y a aussi d'autres problèmes de trouvabilité, de tests d'intégration, etc ... Fondamentalement, toutes les raisons que Google donne pour l'utilisation d'un référentiel unique. –

+0

Dans ce cas, je regarderais probablement quelque chose comme SVN –

Répondre

4

Réponse courte est non, il ne semble pas exister. Comme vous pouvez le lire dans un Quora article, "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, vous devez d'abord être clair sur les «caractéristiques» qui vous intéressent, car vous pouvez être intéressé par une fonctionnalité qui n'est pas la responsabilité de Piper. De plus, gardez à l'esprit que l'espace disque et l'OS de votre serveur limiteront le nombre/taille de fichiers avant le VCS choisi.

Si vous avez besoin d'un VCS centralisé et de milliards de fichiers, vous pouvez utiliser SVN ou OpenCVS.

Si vous avez besoin d'un Distributed avec des moteurs de développeurs et des millions de commits, jetez un oeil à Git, Bazaar, Bitbucket ou Mercurial.

Mais avez-vous vraiment avez-vous toutes ces exigences?

AFAIK il n'y a pas d'équivalent open source de Piper sur le marché.

Afin de mieux comprendre VCS centralisée et distribuée, jetez un oeil à this Comparison between Centralized and Distributed Version Control Systems

Jetez aussi un coup d'œil à what is Google's repository like?

+0

"Gardez à l'esprit que l'espace disque de votre serveur et l'OS limiterait le nombre de fichiers/taille avant le VCS choisi" -> Voilà le point: ce n'est pas le cas avec piper. C'est un VCS centralisé mais un service distribué. L'approche du «service cloud» permet une «évolutivité infinie». Le contenu du référentiel est partitionné. Un 'checkout' est juste des métadonnées côté serveur + un 'FS réseau'. Les opérations sur les fichiers se traduisent par RPC au service qui maintient le statut de votre 'copie locale'. Avantage: votre «copie locale» est en fait potentiellement accessible à tous. –

+0

Donc, pour les fonctionnalités, je dirais "service distribué" avec "interface fusible" bien qu'il s'agisse plutôt d'un détail d'implémentation. Il peut y avoir d'autres façons d'atteindre l'exigence réelle qu'est «l'évolutivité infinie». Plus les fonctionnalités de base que vous attendez d'un VCS bien sûr: l'historique, la copie de travail, la mise à jour et la fusion ... J'ai aussi l'impression qu'il n'existe pas en opensource. Quelques solutions exclusives prétendent que cela (forcément, plastique) mais je ne suis pas sûr de savoir à quel point c'est vrai. –

+0

@ColinPitrat Perforce "prétend" ceci, mais je ne l'ai pas utilisé une fois pour vérifier. Je ne connais aucun projet opensource avec des ressources comme Google Piper. À l'heure actuelle, la meilleure réponse simple à votre question serait «non, il n'y a pas d'option semblable à celle de Piper». La grande majorité des entreprises sont très loin d'avoir besoin de "scalabilité infinie" de toute façon. Gardez à l'esprit que Google Piper est seulement une application de la solution que Google utilise, impliquant de nombreux autres outils. – MiguelKVidal