今回はSVNがテーマです。
SVNにはブランチという機能があります。不慣れな型にとっては感覚を掴むのに苦労するかもしれませんが、多くの現場で使用されていますので、覚えておきましょう!
SVNのブランチとは?
ブランチとは「枝」という意味です。
開発において、ソースコードや設計書等のドキュメントをバージョン管理することはよくあることです。
ブランチを生成することを、「ブランチを切る」なんて言ったりします。
多くの現場にて、このブランチを活用して作業していますので、抑えておきましょう!
なぜブランチを生成するのか?
そもそもブランチはどういった位置付けなのか?
そのためにまずは「トランク」と「ブランチ」の関係性を知る必要があります。
trunk(トランク)
開発において、中心となる位置付けになります。
「本流」という表現が近いかもしれません。
branch(ブランチ)
「本流」から派生した「支流」の位置付けです。
開発時にはブランチを生成し、修正はブランチに反映します。
そして、そのブランチをトランクに反映する流れを繰り返す形となります。
イメージ
なぜブランチを生成するのか?
SVNのシステム上、トランクのみで管理することも可能です。
が、そういった運用は避けるべきです。
トランクは常に最新の状態とする
ここでいう最新とは、作業中も含めたリアルタイムの状態ではなく、動作保証の取れた最後の状態ということです。
トランクは「本流」の位置付けであり、作業状態を保存しておく場所ではありません。
たまに、全ての変更をトランクで管理しているプロジェクトも見かけたりしますが、危険な運用です。
マージ時の競合を防ぐ
トランクを更新してしまった場合、他メンバーが作業しているブランチを合流(マージ)する際に競合が発生してしまう場合もあります。
自分が更新した箇所を、別のメンバーも更新していた場合、競合が発生します。
これはどちらを正として良いのかシステム側では判断がつかないために発生する事象です。
ブランチを切っておけば、作業状態が保存されているため、見比べることが可能になりますが、全てをトランクで管理しようとしていた場合、どちらの作業状態もシステム上に持っていないため、面倒なことになります。
そういった事も防ぐために、ブランチを活用しましょう。