グーグルのクラウドを支えるテクノロジー > 第21回 Googleのソースコード管理システム ― Piper/CitC(続編)
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第21回 Googleのソースコード管理システム ― Piper/CitC(続編) 」を公開しました。
はじめに
前回に続いて、2016年に公開された学術記事「Why Google Stores Billions of Lines of Code in a Single Repository」をもとにして、Google社内で利用されているソースコード管理システムを紹介します。
前回説明したように、Googleでは、ほぼすべてのソースコードが単一のリポジトリで管理されており、すべての開発者が共通のソースコードを利用できるようになっています。今回は、このような仕組みがもたらす利点と課題を説明します。
単一リポジトリの利点
冒頭の記事では、単一のリポジトリを使用する利点として、次のような点があげられています。
•複数バージョンにまたがる依存関係の問題を回避する
•大規模なリファクタリングを可能にする
•プロジェクト間でのソースコードの共有を推進する
まず、複数バージョンにまたがる依存関係ですが、たとえば、図1左のようなライブラリーの依存関係を考えてみます。アプリケーションAは、内部的に、ライブラリーBとライブラリーCを使用しており、さらに、ライブラリーBとライブラリーCは、どちらも共通のライブラリーDを使用しています。この時、それぞれのライブラリーが別々のリポジトリで独立に管理されているとすると、ライブラリーBとライブラリーCで、前提となるライブラリーDのバージョンが異なる可能性が発生します(図1右)。そうなると、ソフトウェアAをビルドする際は、異なるバージョンのライブラリーDを使い分けないといけなくなります。一般的なビルドツールでは、このような状況は想定されておらず、ソフトウェアAをビルドすることは困難になります。
この続きは以下をご覧ください
https://www.school.ctc-g.co.jp/columns/nakai2/nakai221.html
ソーシャルもやってます!