ブランチからのバージョンを更新すること

一方アリスとボブは自分たちのリビジョン、 patch-2patch-3を作ったとします。 アリスはどうやって彼女のブランチにその変更を追加することができるのでしょうか?

arch はこういうことのためにたくさんの方法を用意しています。 すでに導入されたコマンドを使うとすると、彼女は updatereplay を使うことができます。今回はreplayを使ってみましょう。

        % cd ~/wd/hw-candice

        % larch replay --in-place \
                -A lord@emf.net--2003-example \
                . \
                hello-world--mainline--0.1
        [...]

Note that we used a -A オプションを使って、どのアーカイブ からの変更をリプレイするか、そして、バージョン名で、どの変更が欲しいかを 指定したことに注意してください。今回の場合 replay は、キャンディスのツリーに対して、 patch-2patch-3 のチェンジセットを適用しました。

このreplay の使いかたは、"マージ"の形になっています: キャンディスのローカルな変更はアリスとボブの主系での変更を マージしました。

注意: 例に沿って読んできたのなら、 hw.c を調べてキャンディスの printf 文字列への変更と、アリスの「copywrong」の注意書きの両方が含まれている ことに注意してください。

注意: また、キャンディスのpatch-1リビジョン の二つめのコピーをチェックアウトして、同じマージ処理を、replayの代わりに updateを使ってやってみることもできます。'larch update -help' を使って どのオプションと引数が用意されているかを調べるこができます。

また、以下のことにも注意してください。いままでこのような変更を キャンディスのツリーに対してだけやってきました — キャンディスのアーカイブにはチェックインしませんでした。実際に彼女のアーカイブ にマージを記録するには、ログメッセージを作って、通常のやり方でコミット しなくてはなりません( 第12章参照).

もう一点だけ指摘しておきたいもっと便利な方法があります。 キャンディスが自分のログメッセージを書くとき、マージが行われたことと、 それに含まれていることについて書きたいと思うかも知れません。 arch は、そのようなログメッセージ中に含まれるものと同じ になるような出力をもつコマンドがあります。

  % cd ~/wd/hw-candice

  % larch log-for-merge
  Patches applied:

    * lord@emf.net--2003-example/hello-world--mainline--0.1--patch-3
       added copywrong statements

    * lord@emf.net--2003-example/hello-world--mainline--0.1--patch-2
       commented return from main