tla tree-root — プロジェクトツリールートの表示
DIR または現在のディレクトリを含むプロジェクトツリーの ルートを検索し表示します。GNU arch のプロジェクトツリーのルー トには必ず {arch}管理領域があります。このプログラムは上位ディ レクトリに向かって {arch} ディレクトリが存在しないかどうかを 調べることでプロジェクトツリーのルートを判別します。{arch}管 理領域はプロジェクトツリーのルートにしか存在しません。
--accurate オプションを指定すると以下の3種類の可能性を チェックします。まずプロジェクトツリーがコミットの途中であり、 ツリーのパッチログ領域にログエントリを追加する前に中断された 状態にあるかどうかを調べます。この場合アーカイブに対して実際 にコミットが完了したかどうかを知ることはできず、{arch}ディレ クトリには "++mid-commit" のようなログファイルが残っています。 ツリーがこの状態にある場合にはエラーメッセージを表示して終了 します。
プロジェクトはコミットを中断した状態にありますが、実際 にはコミットが完了しています。この場合 "++commit-definite"の ようなログファイルが残っています。ツリーがこの状態にある場合 にはまずログファイルを正しく設定し、その後ツリールートを表示 し、プログラムを正常に終了します。
プロジェクトツリーのパッチログは完全に更新されている場 合。ツリーがこの状態であれば普通にツリールートを表示し、正常 終了します。
/home/foo/proj という名前のプロジェ クトツリールートに hello.c というファイルとドキュメント用ディ レクトリ doc があります。プロジェクトツリールートで実行して も、doc サブディレクトリで実行しても、プロジェクトツリールー トである /home/foo/proj が返ります。
$ pwd /home/foo/proj $ ls doc hello.c {arch} $ tla tree-root /home/foo/proj $ cd doc $ pwd /home/foo/proj/doc $ ls README.txt $ tla tree-root /home/foo/proj $