regexps.com
前章の例をたどると、あなたは新しいアーカイブと,
そのアーカイブ内に新しい hello-world
プロジェクトを持つはずです.
この章では、そのプロジェクトの一部として, ソースツリーを準備する段階を見ていきます.
例題として、最初の、ちょっとバグっぽい hello-world
の実装があるとしましょう:
% cd ~/wd % ls hello-world % cd hello-world % ls hw.c main.c % cat hw.c #include <stdio.h> void hello_world (void) { (void)printf ("hello warld"); } % cat main.c extern void hello_world (void); int main (int argc, char * argv[]) { hello_world (); return 0; }
ソースを準備する第一歩は、ふつうのソースツリーを プロジェクトツリー にすることです:
% cd ~/wd/hello-world % tla init-tree hello-world--mainline--0.1 % ls hw.c main.c {arch}
注目してほしいことは, init-tree
に渡したのは,
これから作業するアーカイブでのバージョンの名前であることです.
init-tree
はツリーのルートに新しいサブディレクトリ
({arch}
) を作りました.
{arch}
サブディレクトリは、
ここがプロジェクトツリーのルートであることを示します:
% tla tree-root /usr/lord/wd/hello-world
tla
は、このツリーがどのアーカイブバージョンに対応するかを知ってます:
% tla tree-version lord@emf.net--2003-example/hello-world--mainline--0.1
最後に, arch
はパッチログ (patch log)と呼ばれるものを作りました. これは init-tree
に渡されたバージョンに対するものです:
% tla log-versions lord@emf.net--2003-example/hello-world--mainline--0.1
パッチログが何のためのものかは後の章で説明します。
これまでのところ、私たちはソースとしてこのプロジェクトツリーに 印を付けただけです: まだ, アーカイブには何も新しいものは格納してません. やがてそうしますが, その前に, 最初に扱うべき重要な話題があります: それは ソースインベントリ (source inventories)です (訳注: inventory は在庫目録の意). それは次章で論じます.
上の例で、次のようなタイプミスをしたら:
% tla init-tree hello-world--mainlin--0.1
"乱暴な"解決策は、
単に, {arch}
サブディレクトリを削除して最初からやり直すことです。
しかし、この策は望ましくないです:
{arch}
サブディレクトリは、あなたが削除したくないデータも
含んでるかもしれません.
そこで, この機会にもう少し進んだコマンドを紹介しましょう。
init-tree
を間違って起動した後は、二つ問題があります.
以下のコマンドの出力は両方とも, 私たちが望むものでは無いです:
% tla tree-version lord@emf.net--2003-example/hello-world--mainlin--0.1 % tla log-versions lord@emf.net--2003-example/hello-world--mainlin--0.1
ツリーの tree-version
はいつでも変更できます:
% tla set-tree-version hello-world--mainline--0.1 % tla tree-version lord@emf.net--2003-example/hello-world--mainline--0.1
パッチログは少しややこしくなります。 不必要なログを削除し, 必要なものを追加しなければなりません:
% tla add-log-version hello-world--mainline--0.1 % tla log-versions lord@emf.net--2003-example/hello-world--mainlin--0.1 lord@emf.net--2003-example/hello-world--mainline--0.1 % tla remove-log-version hello-world--mainlin--0.1 % tla log-versions lord@emf.net--2003-example/hello-world--mainline--0.1
警告: remove-log-version
は危険なコマンドです:
あなたが必要かもしれないパッチログであっても, あなたが求めれば, 削除します.
remove-log-version
を使うのは, 上述のように, 消されるものが
必要なものでは無いことが確実なときだけにすべきです.
init-tree
は、ソースツリーのルートに
{arch}
サブディレクトリを作成しました。
そこには何があるでしょう?
% ls {arch} ++default-version =tagging-method hello-world % cat {arch}/++default-version lord@emf.net--2003-example/hello-world--mainline--0.1 % cat {arch}/=tagging-method [... 長い出力 ...]
{arch}/hello-world
はかなり深いツリーのルートです。
パッチログはこのツリーに格納されます。
{arch}/=tagging-method
は設定ファイルで、
このツリーに適用する命名規則を設定するために使えます.
これについては後の章で説明しています。
(インベントリ命名規則のカスタマイズを参照)
注意: もちろん、{arch}
の内容を直接, 手で編集すべきではありません.
regexps.com