CVS ブランチにまつわる作業
CVS ブランチにまつわる作業
このファイルについて (トップ)
Chris Demetriou 曰く: そんなわけで、皆さんは CVS ブランチにまつわる作業をよくするでしょう。 以下に記すのは、私がブランチいじり (作成、更新) をするときに普通に使うコマンドです。 Jason に頼まれて書いたものです。
以下、 ${b} はブランチ名、 ${m} はこのブランチの対象となる モジュールとします。階層構造内の個々の構成要素を扱いたい方もいるようですが、 ここでは階層構造全体を扱うものとします。 私は、個々の構成要素を扱った経験はほとんどないのです。
ブランチを作成するには (トップ)
-
分岐させようとしているソース一式に、以下のコマンドでタグを打ちます:
cvs rtag -r HEAD ${b}-base ${m}
-
このソース一式を、以下のコマンドを使い、分岐させます:
cvs rtag -b -r ${b}-base ${b} ${m}
trunk での変更をブランチに反映させるには (トップ)
-
ブランチで作業中のソースツリーを更新します:
cvs update -P -r ${b}
(作業用のソースツリー内で行います)
-
新たにベースとしようとする箇所にタグを打ちます:
cvs rtag -F -r HEAD ${b}-nbase ${m}
適切にマージを行うための時間がないなど、何か理由ができた場合は、 これは仮のタグ打ちということにして後でマージをやりなおすこともできます。
-
ブランチの旧ベースと新ベース間の変更をマージします:
cvs update -j ${b}-base -j ${b}-nbase
(作業用のソースツリー内で行います)
-
変更点の衝突の調整などを行います。
-
この変更を (ブランチに) チェックインします。
-
新ベースリビジョンに対して base タグを打ち直します:
cvs rtag -F -r ${b}-nbase ${b}-base ${m}
-
HEAD との定期的な同期をするつもりがなければ、新ベースのタグを削除します:
cvs rtag -d ${b}-nbase ${m}