update は、開発パスについていく唯一の方法ではありません。 他の選択肢としてreplayがあります。
% cd ~/wd/project-tree % larch replay --in-place . [....]
それは実際には何をするのでしょうか?
hello-worldの古いバージョンをチェックアウトしたとしましょう:
% cd ~/wd % larch get hello-world--mainline--0.1--patch-1 hw-patch-1 [...]
結果としてのツリーは最新ではないのは見やすいです:
% cd hw-patch-1 % larch whats-missing patch-2 patch-3
ここで何かhw-patch-1にローカル修正を加えてから updateを実行するとします。何がおこるでしょうか?
ローカルな変更は、patch-1 に対して計算されます 言い替えると チェンジセットは、patch-1リビジョンの修正前コピーからプロジェクトツリーの 現在の状態(hw-patch-1)までの変更を表現するようなチェンジセットが作成され ます。
patch-3 のコピーはチェックアウトされます。 update は、patch-3リビジョンの編集前コピー で始まります。
チェンジセットは、patch-3 のツリーに対して適用されます。 最初のステップで計算された変更は、新しいツリーに適用されます。
しかし、別の方法もあります: