update
コマンドに ‘-j branch’ フラグを付けると、
枝に加えられた変更を作業コピーに反映することができます。
‘-j branch’ オプションが1つだけだと、
枝の分岐点と枝の最新リビジョン間の違いを
(あなたの作業コピーに) マージします。
+-----+ +-----+ +-----+ +-----+ ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 ! <- The main trunk +-----+ +-----+ +-----+ +-----+ ! ! ! +---------+ +---------+ Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 ! +---------+ +---------+
枝 1.2.2 には ‘R1fix’ というタグ (文字列) が付けられています。次 は m.c というファイル1つを含むモジュール ‘mod’ の例です。
$ cvs checkout mod # 最新のリビジョン 1.4 を取り出す $ cvs update -j R1fix m.c # 枝で行なわれた変更(リビジョン 1.2 # と 1.2.2.2 の差分)を作業コピーに追加 $ cvs commit -m "Included R1fix" # リビジョン 1.5 を作成
マージ作業で衝突が起きることもありますが、衝突が起きた場合は、それを解 決してから新しいリビジョンを格納して下さい。 See Conflicts example.
もしソースファイルにキーワードがあれば (see Keyword substitution), 本当に必要なものよりも余分に衝突を得るかもしれません。これを回避する方 法は Merging and keywords を参照してください。
checkout
コマンドでもフラグ ‘-j branch’ を使用できます。
以下の様にして上記と同じ効果を得ることができます:
$ cvs checkout -j R1fix mod $ cvs commit -m "Included R1fix"