第27章 アーカイブのキャッシュしたリビジョンによる arch の効率化

この章ではarch アーカイブへのアクセスを早くするための方法をひとつ お教えしましょう。

arch のあるバージョンで、たくさんのリビジョンを含んでいる ような場合を考えましょう:

        mainline
        --------
        base-0
        patch-1
        ....
        patch-23
        patch-24
        patch-25
        ...
        patch-42

ユーザは (ローカルに編集元コピーがない場合) patch-42 リビジョンを get したいと します。get は最初にbase-0リビジョンを 取得・展開し、それから順番に patch-<N> チェンジセット を取得し、ツリーに適用します。

もし適用する必要のあるチェンジセットのリストが長いものである場合、 あるいは、ツリーサイズに比較してそれらのサイズの合計が大きい場合、 get の現在の実装は不要で十分ではありません。

get を高速化するひとつの方法は「アーカイブキャッシュリビジョン」 — 「あらかじめ作成した」あるリビジョンをアーカイブと一緒にコピーして おくことによります。

たとえば以下のコマンド:

        % larch archive-cache-revision -A lord@emf.net--2003-example \
                hello-world--mainline--0.1--patch-40

これは patch-40 リビジョンを構築し、それを tar ファイルの形に パッケージ化し、アーカイブ中のpatch-40の中にその tar ファイルの コピーを保存します。

引続き、patch-42get は、最初にpatch-40 のリビジョンのキャッシュされたコピーを取得し、それからpatch-41patch-42 のチェンジセットを取得・適用します: それで 40 個のチェンジセットは省略できます。

利用に関するノード: この時点で、 どのリビジョンをキャッシュし、どれをそうしないかはあなたの判断にまかされて います。例えば、getが遅すぎると感じた場合はいつでも cron作業からのある特定のリビジョンを自動的にキャッシュ するか、単に手でリビジョンをキャッシュするかを決定するかも知れません。 今後、自動的なリビジョンのキャッシュに関するよりよいサポートを追加する ように考えています。