バージョン管理システムにおけるブランチとは
バージョン管理システムにおけるブランチ(branch)とは、ソースコードなどのオブジェクトを複製し、複数の開発者が並行して作業できるようにする機能です。ブランチは、ツリー、ストリーム、コードラインなどと呼ばれることもあります。
ブランチの種類
ブランチには、親ブランチ、子ブランチ、トランクなどの種類があります。
親ブランチ(parent branch):ブランチの元となるブランチです。アップストリームブランチ、バッキングストリームとも呼ばれます。
子ブランチ:親ブランチから分岐したブランチです。
トランク(trunk):親を持たない、起点となるブランチです。メインラインとも呼ばれます。
分散型
バージョン管理システムでは、
リポジトリとブランチを区別できない場合もあります。この場合、
リポジトリのコピーはブランチの作成と同じ意味になります。
ブランチ作成の動機
ブランチを作成することで、以下のようなメリットが得られます。
並行開発:複数人で同じコードベースを同時に開発できます。
役割分担:開発者、マネージャー、品質保証担当者など、異なる役割の担当者が並行して作業できます。
複数リリース管理:異なるオペレーティングシステムや
バージョンのリリースを同時に管理できます。
変更の分離:バグ修正、新機能追加、
バージョン統合などの変更を、他の開発者の作業に影響を与えることなく独立して行えます。
これらの変更は、テスト後に親ブランチにマージして同期されます。
マージを予定しないブランチの作成は、一般的にフォークと呼ばれます。
開発ブランチ
正式リリース前の開発中の
バージョンは、開発ブランチまたは開発ツリーと呼ばれます。オープンソースコミュニティでは、誰でも開発ブランチを取得できるため、リリースという概念は比喩的なものとなります。次期メジャー
バージョンとなるブランチを、特に開発ブランチと呼ぶこともあります。
複数の後続
バージョンが同時に開発されている場合もあります。
バージョン管理システムによっては、主となる開発ブランチを指すのに特別な用語を使う場合があります。例えば、CVSではメイン、一般的にはメインラインと呼ばれます。
シャドウブランチとマジックブランチ
cvcやCVSNTといったシステムには、シャドウブランチまたはマジックブランチという機能があります。これは、アップストリームブランチで行われた変更を「覆う」ことで、小さな変更点の管理を容易にする仕組みです。
まとめ
ブランチは、ソフトウェア開発における並行作業を可能にする重要な機能です。ブランチを適切に活用することで、効率的な開発プロセスを実現できます。
関連項目
トランク (ソフトウェア))
リビジョンタグ
参考文献
Streamed Lines: Branching Patterns for Parallel Software Development
https://www.joelonsoftware.com/2008/05/12/streamed-lines-branching-patterns-for-parallel-software-development/