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