regexps.com
メタプロジェクト (meta-projects)
を定義できます. これは arch
によってばらばらに追跡される個々のプロジェクトの組合せです.
これでできることは, 大規模なプロジェクトを、より小さくて, より扱いやすい部分に分解することです.
それぞれはお互い独立に開発することができます.
また, それらは, 複数のメタプロジェクトの構成要素になれます.
これをするには, config specs を書きます. config specs はメタプロジェクトの内容と, それらをソースツリー下でどのように配置すべきかを定義します.
たとえば, arch
自身はメタプロジェクトです。
そのソースツリーが含むものは:
dists/ dists/src/ dists/src/arch/ dists/src/file-utils/ dists/src/ftp-utils/ dists/src/hackerlab/ dists/src/shell-utils/
各ディレクトリはプロジェクトツリーのルートです ( {arch} と命名されるサブディレクトリを含みます).
最上位のディレクトリである dists
は、
さらに configs
と名付けられたサブディレクトリも含みます.
そのサブディレクトリに、メタプロジェクトの設定ファイルがあります。
例えば次のようになります:
dists/ dists/configs/ dists/configs/regexps.com/ # Tom's configuration files dists/configs/regexps.com/devo.arch dists/configs/regexps.com/release-template.arch
以下は devo.arch
の内容です:
# # Check out an arch distribution from the devo branches. # Latest revisions. #
./src lord@regexps.com--2002/package-framework--devo ./src/arch lord@regexps.com--2002/arch--devo ./src/file-utils lord@regexps.com--2002/file-utils--devo ./src/ftp-utils lord@regexps.com--2002/ftp-utils--devo ./src/hackerlab lord@regexps.com--2002/hackerlab--devo ./src/shell-utils lord@regexps.com--2002/shell-utils--devo ./src/text-utils lord@regexps.com--2002/text-utils--devo
ファイルの(空行やコメントでない)各行のフォーマットは以下です:
LOCATION CONTENTS
この意味を述べます. メタプロジェクトを作るには,
CONTENTS
で示されるリビジョンを取得して,
LOCATION
にそれをインストールします.
CONTENTS
欄は
ブランチ(このとき, そのブランチの最新のバージョンの最新のリビジョンを取得します),
バージョン(このとき, そのバージョンの最新のリビジョンを取得します),
もしくは, リビジョン名 (このとき, そのリビジョンぴったりのものを取得します)
のいずれも可能です.
arch
ツリー全体をチェックアウトするには,
まず devo
から dists
をチェックアウトし、
次に build-config
を使います:
% tla get dists--devo dists [....]
% cd dists
% tla build-config regexps.com/dists.devo [....]
一旦メタプロジェクトツリーを持つ場合は, 他に便利なコマンドは:
cat-config : マルチプロジェクトの設定 (config) についての情報を出力
そのコマンドを一回使うと、他のコマンドを繰り返して適用できる サブプロジェクトの一覧を生成します:
% tla cat-config CFGNAME | awk '{print $1}' | xargs ...
さらに、オプション --snap
は,
リビジョンではなくバージョンでサブプロジェクトを指定する設定に適用するのに
便利です.
それはプロジェクトツリーを調べて,
複数の LOCATION
のそれぞれで実際にどのリビジョンが
インストールされているかを確かめます.
そして, これらの REVISION
を正確に指定した新しい config を書きます。
これが有用なのは, 例えば,
これから配布物にする特定のリビジョンを記録するのにです.
regexps.com