第1節で tla build-config を使って tla のソースコードを展開し た。ここでは tla のソースコードに実際に手を入れる方法について説明 しよう。既にのべたように tla はひとつの設定用アーカイブバージョン と、四つの独立したアーカイブバージョンをまとめたものだった。tla を 修正する場合は、このうち、tla--devo--1.3 と hackerlab--devo--1.0 のどちらかに 対して修正を入れることがほとんどなので、これを前提としてカスタマイ ズの仕方を考えてみる。まず、直接 Tom Lord のアーカイブを修正するこ とはできないので、tla と hackerlab の分岐を、ローカルマシンに作る。 ここでは分岐先アーカイブバージョン名を、それぞれ tla--foo--1.3と hackerlab--foo--1.0としよう。
$ tla archive-setup tla--foo--1.3 … $ tla archive-setup hackerlab--foo--1.0 … $ tla archive-setup dists--devo--1.0 … $
通常の分岐を作る操作と全く同じで、それぞれのバージョンに対し てtla tag を実行する。
$ tla tag lord@emf.net--2004/tla--devo--1.3 octopus@bluegate.org/tla--foo--1.3 … $ tla tag lord@emf.net--2004/hackerlab--devo--1.0 octopus@bluegate.org/hackerlab--foo--1.0 … $ tla tag lord@emf.net--2004/dists--devo--1.0 octopus@bluegate.org/dists--foo--1.0 … $
dists--foo--1.0 を get する。当たり前だが dists--devo--1.0 とまったく同じものになる。
$ tla get dists--foo--1.0 … $
独自の設定を作るため、./configs/emf.net/devo.tla をコピーす る。ここでは ./config/emf.net/foo.tla としよう
foo.tla は devo.tla を単にコピーしただけなので、タ グラインの方法でインベントリidを付与されている devo.tla と、 foo.tla とのインベントリidが重複してしまう。これをさけるため、コピー 後、foo.tla のインベントリidを別のものに変更する必要がある。
./config/emf.net/foo.tla を編集し、以下のように tla と hackerlab を分岐後のものとする:
# Check out a tla arch distribution from the devo branches. Latest # revisions. # ./src lord@emf.net--2004/package-framework--devo--1.0 ./src/tla octopus@bluegate.org--2004/tla--foo--1.3 ./src/hackerlab foo@bleugate.org--2004/hackerlab--foo--1.0 ./src/docs-tla lord@emf.net--2004/docs-tla--devo--1.0 ./src/docs-hackerlab lord@emf.net--2004/docs-hackerlab--devo--1.0 # tag: Tom Lord Sat Jun 14 14:54:15 2003 (emf.net/devo.tla) #
あとは、tla build-config をいま作った定義ファイルによって構 築すればよい:
$ tla build-config emf.net/foo.tla … $
これからの修正は、tla の部分については ./src/tla、hackerlab の部分については ./src/hackerlab に降りていって行えばよい。コミッ トは個別のアーカイブバージョンのディレクトリで行なえばよい。繰り返 すが、後は異なる 3っつのアーカイブバージョンのプロジェクトツリーが たまたま特別なディレクトリの上下関係の中に展開されているだけだ。