Googleはすべてのコードベースをpiper [1] [2] [3]という単一のリポジトリに保存します。
オープンソースの代替手段(集中型「クラウド」サービス)とは非常に異なるアプローチを採用しており、数十億のファイル、数千の開発者、数百万のコミットを含むリポジトリへのスケーリングを目指しています[1]。
Googleはそれをオープンソース化していないようだし、そうするつもりもない(彼らのビルドシステムブレイズや他のツール[4]とは反対)。
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=
短い答えはノーです、それは存在しないようです。
Quoraの記事 で読むことができるように、「バージョン管理システムがどこで終了し、開発ツールチェーンの他の部分がどこから始まるかを判断するのは困難です」。
したがって、最初に、パイパーの責任ではない機能に興味を持つことができるので、興味のある「機能」を明確にする必要があります。
また、選択したVCSの前に、サーバーのディスク容量とOSがファイル数/サイズを制限することに注意してください。
集中型VCSと数十億のファイルが必要な場合は、SVNまたはOpenCVSを使用できます。
数千の開発者と数百万のコミットを含む分散型が必要な場合は、Git、Bazaar、Bitbucket、またはMercurialをご覧ください。
しかし、あなたは本当にこれらすべての要件を持っていますか?
私の知る限り、パイパーのオープンソースに相当するものは市場にありません。
集中型VCSと分散型VCSをよりよく理解するには、 この集中型と分散型バージョン管理システムの比較 をご覧ください。
また、 Googleのリポジトリはどのようなものですか? もご覧ください
Piperに相当するオープンソースはありません。
Piperは古く、 perforce area に由来する古い形式のAPIを持っていることに注意してください。最新のDVCSが提供するものと同様の、より最新のワークフローが必要になると思います。
あなたのコードベースはGoogleの86TBリポジトリほど大きくないと確信しています。あなたは本当に同じものが必要ですか?.
GitまたはMercurialに基づいたmonorepoを使用できると確信しています。また、必要に応じて[VFS for git] [2]などの仮想ファイルシステムに進化することもできます。
[2]:GitのVFS
Googleは複数のバージョン管理ツールを構築しています。 Piperは、Googleモノレポのニーズに特化しています。
GoogleがAndroidを構築したとき、バージョン管理を処理するためにgerritとレポを構築しました。 Repoは、多くのgitリポジトリーを一度に処理するために使用され、各リポジトリーには独自のメンテナーとリリースサイクルがあります。オープンソースの依存関係は、単一の組織がグローバルビルドステータスやグローバルリファクタリングなどを強制することなく、monorepoには向いていません。また、リクエストに対応するコミットのパフォーマンスなど、パイパーの要件はほとんどの場所に適用されません。