regexps.com
update は開発パスに追いつくための唯一の方法ではありません。
別の選択肢は replay です:
% cd ~/wd/project-tree
% tla replay
[....]
これは実際には何を行うものでしょうか。
hello-world の古いバージョンをチェックアウトしたとしましょう:
% cd ~/wd
% tla get hello-world--mainline--0.1--patch-1 hw-patch-1
[...]
結果として得られるツリーが最新のものでは無いことは, 簡単に分かります:
% cd hw-patch-1
% tla missing
patch-2
patch-3
さて, hw-patch-1 にローカルに変更を加え, 次に update を実行してみます.
何が起こるでしょうか?
ローカルの変更は patch-1に対して算出される. 言い換えれば、ここで作られるチェンジセットが記述する変更は, patch-1 リビジョンのプリスティンコピーから, プロジェクトツリーの現在の状態 (hw-patch-1)へのものです.
patch-3 のコピーがチェックアウトされる. update は patch-3 リビジョンのプリスティンコピーから開始します.
changeset は patch-3 ツリーに適用される. 最初の段階で算出された変更が, 新しいツリーに行なわれます.
ただし、別の方法があります:
私たちは、patch-1のローカルコピーを持ってます.
それはは恐らく, ローカルな変更点があります:
% cd ~/wd/hw-patch-1
% tla missing
patch-2
patch-3
patch-2 および patch-3リビジョンは, それぞれ, 特定のチエンジセットに対応し, アーカイブに格納されてることを思いだしてください (それはどのように動作するか -- 新しいリビジョンの commitを参照).
これらの変更をあなたのローカルツリーに追加するには, get-changeset を使ってそれぞれのチェンジセットを取得し, dopatch を使って適用することもできるでしょう (get-changeset はアーカイブからチェンジセットを取得する, と dopatch を参照).
とはいえ, これは多量の退屈な作業です.
だから, arch はもっと自動的な方法を提供して, 同様の効果をもらたします:
% cd ~/wd/hw-patch-1
% tla replay
[....]
% tla missing
[出力無し]
replay は、ちょうど上に述べたことをします:
アーカイブからパッチを取り出し、次々に適用します.
ただし, 一点注意があります: これらのパッチが衝突を起こすなら,
replay は停止して, あなたが衝突を解消する必要があります.
その後、replay が実行停止した地点から,
replay を再度実行させることができます.
このチュートリアルを最初から追いかけてれば, replay の作業の方法は大変自明なはずです.
実際, 上で述べただけのことです.
replay は、missing を使ってどの変更点がツリーに無いかを見い出し, get-changeset でチェンジセットを取得し, dopatch で適用します。
これを実行するのに沢山の"帳簿付け"があります.
そして, その帳簿付けこそが, replay が自動化する作業です.
regexps.com