名前

tla inventory — プロジェクトツリーのインベントリ一覧

用法

tla inventory [options] [--] [dir]*

説明

プロジェクトツリーのインベントリの一覧を表示します。オ プションを指定することでインベントリidで管理されているファイ ル以外のファイルも表示することができます。プロジェクトツリー 中のファイルは、インベントリidの付与規則や、{arch}管理領域に ある=tagging-method ファイル、そのほかの制御ファイルの状態に よっていくつかのグループに分類されます。この規則は歴史的な経 緯もあって非常に複雑ですが、tla inventory コマンドを使えばそ れぞれのファイルがどのグループに分類されているかを確認するこ とができます。

-r または --report を使うと、カテゴリオプション (--sourceなど)はそれらのファイルにたいしてのみ表示するように なります。オプションがなければすべてのセクションとファイルを 含んだ内容が表示されます。-d, -f, -b オプションは相互に排他 的です。ディレクトリが precious, junk, unrecognized である場 合はディレクトリ名称自身のみが表示されます—その内容は 検索されません。

すべてのコマンドオプションは対応するカテゴリオプション を暗黙に含んでいます(たとえば "--source-command" は "--source"を含みます)。コマンドの終了ステータスは無視されま す。

このコマンドは、プロジェクトツリーの初期インポート時に よく利用されます。初期インポート時にはどのファイルがソースファ イル、つまりバージョン管理対象として GNU arch が認識するかが 非常に重要になるからです。またインポート後でもすべてのソース コードに対して一括した処理をしたいような場合にunixのxargsコ マンドとの組み合わせでよく利用されます。また tla tree-lint がエラーになる場合には、このコマンドの表示で詳しい原因がつか めるのが普通です。

別名

なし

変更: [----]

スイッチ

このコマンドは非常に豊富なスイッチがあります。

-s, --source        ソースファイルの一覧を表示します
-p, --precious      プレシャスファイルの一覧を表示します
-b, --backups       バックアップファイルの一覧を表示します
-j, --junk          ジャンクファイルの一覧を表示します
-u, --unrecognized  アンレコグナイズファイルの一覧を表示します
-t, --trees         ネストしたツリーのルートの一覧を表示します

-d, --directories   ディレクトリのみを表示します
-f, --files         ディレクトリ以外のファイルのみを表示します
-B, --both          ディレクトリとファイルの両方を表示します
--kind              ファイル種別を表示します

--all               GNU arch 管理領域のファイルも表示します
--nested            ネストしたツリーも表示します

--ids               id と共に表示します (ソースファイルのみ)
--untagged          id のないファイルも表示します

--explicit          明示的なidを使います
--implicit          暗黙のidを認めます
--tagline           タグラインidを認めます
--names             名前ベースのファイルidを使います

プロジェクトのルートに ,,undo-1 というディレクトリがあ りますが、これがソースファイルとして認識されないことを確認し ています。",," で始まるファイルはすべて無条件にジャンクファ イルとして扱われるという規則があります。ファイルの分類とイン ベントリについては(XXX)を見てください。

$ ls
,,undo-1  hello.c  {arch}
$ tla inventory
S  hello.c
$

もう一つの例は、プロジェクトツリーのソース全体を一つに まとめて、リリース用 tar ファイルを作るような場合です。説明 のために tools.c というファイルを追加してあります:

$ ls
,,undo-1  hello.c  tools.c  {arch}
$ tla inventory -s  | tar -T- -zcvf release.tar.gz
hello.c
tools.c
$ ls
,,undo-1  hello.c  release.tar.gz  tools.c  {arch}
$ tar ztvf release.tar.gz
-rw-rw-r-- foo/foo          91 2004-04-05 14:23:06 hello.c
-rw-rw-r-- foo/foo          54 2004-04-05 14:29:31 tools.c

ソースコード中の文字列を検索します。この場合単純に find プログラムと grep コマンドを組み合わせると {arch}内のファ イルなども検索対象となってしまいます。tla inventory と xargs コマンドを組み合わせて以下のようにするとうまくいきます。たと えばソースコード中の "#ifdef" 行全体を取得したい場合なら:

$ tla inventory -s | xargs -l grep -nH ifdef
hello.c:6:#ifdef
tools.c:2:#ifdef
tools.c:8:#ifdef
$

CVS対応コマンド

なし