regexps.com
デフォルトでは, アーカイブからリビジョンを get
したとき,
arch は, そのリビジョンの"プリスティンコピー"を {arch}
ディレクトリに格納します.
これもまたデフォルトで, リビジョンを get
したとき,
arch は import
の先祖か, 最も近いアーカイブにキャッシュされた先祖を
探して, そして, 欲しいリビジョンを作るためのパッチを適用することで,
リビジョンを作成します.
get
や同様の操作はリビジョンライブラリを使うことで
より速くなり, より空間効率が良くなり得ます.
例えば, もし get
がライブラリに依頼されたリビジョンを見つければ,
(パッチで作成する代わりに) そこから直接コピーします.
そして, {arch}
下でのプリスティンコピーの作成を省きます.
ここまではよしとします.
しかし, ライブラリにリビジョンを library-add
することを
思い出すのは注意を要することになり得ます.
これを自動的にする方法をここで説明します.
欲深な (greedy) リビジョンライブラリ の属性は, arch が, ライブラリが特定のリビジョンを持つどうかを常に調べて, 無いときは arch が自動的に追加することです.
特定のリビジョンライブラリのディレクトリを欲深にするのは次のコマンドです:
% tla library-config --greedy DIR
arch がリビジョンを欲深なライブラリに自動的に追加するとき,
普通, library-add
のデフォルトのやりかたで追加します:
同じバージョンの以前のリビジョンも同様に追加します.
リビジョンを手動で加える場合であれば,
library-add
に --sparse
オプションを
付けることで, そのような挙動を避けることができます.
自動的なリビジョン追加で同様にさせるには, 次を使ってください:
% tla library-config --sparse DIR
これが意味することは, もしリビジョンが自動的に DIR にあるライブラリに
追加されるなら, あたかも library-add
が
--sparse
オプション付きで起動されたかのように, 追加されると
いうことです.
警告: あなた自身を混乱から守るために, 以下のことを理解しない限りは, この機能は使わないでください: (a) ハードリンクとは何か; (b) エディタが"ファイルを書くときにハードリンクを破壊する"ことの意味. もしこれらを理解していて, あなたが使うエディタが実はハードリンクを壊すことを 知っているなら, この機能を使うかどうかは自由です.
リビジョンライブラリからリビジョンを get
するときに,
コピーする代わりにハードリンクをすることで, 時間をとても短縮できます:
% tla get --link REVISION
build-config
コマンドは同様のオプションを持ちます:
% tla build-config --link REVISION
これはディスクをかなり節約して, get
操作の速度をすばらしく
速めます.
(もちろん, ハードリンクしたツリーを使うときに何かまずいことが 起きてリビジョンライブラリのファイルを変更する可能性が少しあります. arch は, そんなことが起これば通知します. そして, ライブラリの問題のある リビジョンを削除して再構築するように助言するエラーメッセージを出します.)
まとめると, とても簡単で効率の良いはじめかたは以下を伴ないます:
1) 一つもしくはより多くのリビジョンライブラリのディレクトリを作成する.
2) これらのライブラリの幾つかは欲深にし, 可能であれば疎にする.
3) --link
オブションを get
と build-config
で使う.
.
このやりかたで作業して, arch がライブラリにリビジョンを自動的に追加する 必要があるとき, arch は適切なデバイス (ハードリンクを使うため) のライブラリを 検索します. とりわけ, 必要なリビジョンと同じバージョンをすでに含むライブラリを ます検索し, それに失敗すると, 欲深なライブラリを検索します.
arch Meets hello-world: A Tutorial Introduction to The arch Revision Control Systemregexps.com