どのように動作するか — update コマンド

updateコマンドがどのように動作するかについての完全な 説明は、この章の範囲を少し越えています。 いくつかの後の章の後で、updateを詳しく理解することが できるようになるでしょう (チェンジセットとパッチログに関する章です)。

いまは、もし diffpatchになじみがあるのなら、 それをこのような感じで考えることができます:

update がアリスのツリーで実行されると、そのコマンドはpatch-2 リビジョンに向かっているところではあるが、彼女のツリーはpatch-1リビジョンの get としてチェックアウトされたことに気づきます。 update は三段階で動作します:

まず、それは mkpatch というコマンドを利用し、( それはdiffの拡張です) チェンジセットを計算します (パッチセットの拡張です) そのチェンジセットは、アリスが自分のツリーにした変更を記述するものです。

次に、それはpatch-2リビジョンのコピーをチェックアウトして、アリスのツリーを そのリビジョンで置き換えます。

最後に updatedopatch ( patchの拡張です) を使って、最初のステップで作ったパッチセットを 新しいツリーに適用します。

パッチの衝突をどのように扱うか不思議に思うかも知れません。 上の例は、衝突が起こらないように注意して選んだものです。心配する必要は ありません — その話題についてはすぐに触れます (不完全パッチ処理 — どのようにして衝突が扱われるか項 参照)。