CVSブランチブランチとは、あるストリームが他に影響を及ぼさないように開発を分割するCVSの機能です。 通常の開発過程において、連続した段階的な変更をしても上手く動作させるのが難しい修正をする必要がある場合に有効であると証明されています。 大幅に変更する必要がある、おびただしい数のファイルが依存しているファイルを、 依存したファイルと上手くいくように修正する場合です。 1人の開発者はこれらのすべての変更をスナップショットに対して行った上でチェックインします。 そしてソースを一気に前に進めます。 プロジェクトが大きくなると、この作業がこれ以上不可能な状況が発生します。 突然の拡張変更とは対照的な、段階的な変更のバージョン管理を持つことは良いことです。 出来るだけすぐにコードを見ることが出来る多くの目を持つという意味でも重要です。 一方で、TurbineのCVSツリーがいつでもコンパイル可能で、 動作するように保つよう努力しています。 これを保つには、ソースの膨大な変更が必要になったとき、ブランチが必要となります。 CVS book ではブランチを使用した開発を行う複数のアプローチが示されています。 私たちが求めていることに最も良く合うのは、Flying Fish technique と呼ばれる最も単純なアプローチです。 開発のスレッドを分ける必要があるときにブランチを作成します。 そして、ブランチのすべての変更がトランクに結合されたとき、そのブランチを閉じます。 同一の主題に対して開発を分ける必要があれば、また新しいブランチを作ります。 これによって、トランクとブランチの変更を結合するための余分な複雑さと、 何が何処へ結合されるか跡をたどる余分な複雑さがなくなります。 物事はできるだけ単純であることが望ましいのです。
ブランチで使用する名前付けのスキーマは以下の通りです:
ブランチ名は、作業の主題を表現する名前、アンダースコア、2桁の数字で構成されます。
2桁の数字は同一の主題の複数のブランチを分類するために使用します。 以下に${project.name}の開発中に使用されるブランチのリストを示します。 'とりまとめ役'は以下の責任を負います。開発者間で情報を交換する。ブランチのTODOを保守する。 適時変更をトランクに結合する(ブランチを閉じる)。 ブランチがトランクから離れている期間がより短くなると、より良くなります。 結合する場合に発生する矛盾の数が減少するためです。 結合の競合を避けるために、CVSのトランクに対して処理を行う開発者は 'affected sources'のコードを変更するべきではありません。 その代わりに、とりまとめ役にすべての要求やパッチを指示すべきです。 ブランチのコードを開発したい場合も、とりまとめ役に連絡すべきです。 ブランチについて更に詳しく知りたい方は、 Red Bean.comからCVS bookをダウンロードして下さい。 もしくはCVS オンラインマニュアルを閲覧して下さい。 |