Googleの巨大モノリシックリポジトリ
ファイル数は10億、ソースコードは900万ファイルで、これにドキュメントファイルやコンフィグレーションファイルなどが別にある。コードは全部で20億行。
規模違いすぎて想像が追いつかねぇ……
メリット
広域に渡る修正も一気にできる
すでに安定して動いている「利用ライブラリの組み合わせ」が維持され続ける
社内のコードすべてにリーチしやすい
こっちが解説詳しいかな
コミットするまでの流れが全然イメージわかないけど、レビュー工夫して上手いことやってるんだろう
Git のようなレポジトリ全体のクローンを要求するバージョン管理システムだとやりづらい
SVNみたいにディレクトリ単位のチェックアウトとかできるらしい
新機能の取り込みはフラグを使うらしい
それがフラグです。コマンドラインフラグなど,外部から設定可能なグローバル変数をフラグと呼びます。あるフラグの値が有効なときだけ動作するよう新機能を実装すれば,未完成なとっておきの機能をフラグで無効化したままリリースできます。フラグの裏にコードを隠すのです。「フィーチャートグル」と呼ぶこともあります。
フラグを使えばA/Bテストも簡単です。
ブランチ
o 古いコードを消せる
x マージが煩雑
フラグ
o マージ要らない
x 古いコードも混ざるのでコードが煩雑になる