[CVS超入門] [枝を幹にする]
$Id: cvs_btot.html,v 1.1 2009/02/06 18:24:08 kabe Exp $
つまり、
CVSは幹の最新版を平文で、残りの版を差分の累積で持つので、 枝を長く伸ばすのは効率が悪くなります。ので幹化は効率の点でも重要。
======+=======→-- - -(放棄)- - ======→ | ↑幹に昇格させたい -------------------------→ (枝で作業、commitしまくり)
幹へ移動 (cvs update -A -C
) してから
cvs export -rBRANCH
でむりやり上書きできそう
ですが、「作業領域にはexportできませんよ」と
% cvs -d ~/CVSroot export -d phamm-0.5.15 -rHEAD phamm cvs [export aborted]: cannot export into working directory言われるので、簡単にやるには他所で cvs export してから tar | tar で上書きコピーとかしてもいいんですが、
以下のように、分岐点には点タグが打ってあった、とします。
BRANCH_POINT v ======+=========-- - -(放棄)- - (HEAD) | ↑幹に昇格させたい -------------------------→ (BRANCH) (枝で作業、commitしまくり)
分岐点にタグ打ってなかった?今後は打つようにしましょう。 無ければ時刻指定でなんとかなるかも しれません。
% cvs update -A -C
% cvs update -jBASE -jBRANCH_POINT #逆向きパッチ単純に逆パッチを当てるだけなので、conflictとかは出ないはず。
% cvs update -jBRANCH_POINT -jBRANCH #枝取込作業領域と共通の分岐点からなので、こちらは -jBRANCH だけでもいけます。
% cvs commit #「BRANCH枝を取り込んだ」などと書いておく
枝を幹化するのも一種の枝の取込作業なので、点タグを取込元に 打っておきます。
% cvs tag -rBRANCH MERGEPOINT_1今後、BRANCH枝を使わないなら問題ないのですが、 BRANCHをさらに少し伸ばして→再度幹に取込み、の際に必要になります。
Next: CVSエラー対処