GNU arch のファイルグループの一つに「プレシャス」がある。こ れはローカルにコピーされる場合にソースと共にコピーされるという性質 を与えられたものだが、「ローカルにコピーする」とは一体正確にはどの ような状況を指すのかを議論する。
プレシャスのコピーに関係したソースファイルは、
./src/tla/libarch/copy-project-tree.c
にある
arch_copy_project_tree()
関数であり、これが呼び出されるのは、以下の四つの場所である。
cmd-apply-delta.c: arch_copy_project_tree (upon, dest, 1, 1); cmd-join-branch.c: arch_copy_project_tree (upon, dest, 1, 1); cmd-sync-tree.c: arch_copy_project_tree (upon_root, dest, 1, 1); cmd-update.c: arch_copy_project_tree (upon_root, dest, 1, 1);
つまり、これらのコマンドでは既存のプロジェクトツリー上で処理 を実行するかわりに --dest オプションで新規ディレクトリを指定して実 行することもできるが、この場合元になるプロジェクトツリー中のソース とプレシャスがそこにコピーされた後、それぞれのコマンドが実行される。
バックアップとジャンクの属性の違いは、ジャンク属性が「安全 に削除できる」ということで示されている。が、現時点(tla-1.2) のソー スコードを見てもバックアップとジャンクのどちらかが特別に扱われて いる気配はない。これについて説明する。
現時点ではこの両者にははっきりした区別はない。ただし tla は内部的に ,, で始まるファイルを一時的なファイルとして利用してお り、これは =tagging-method などの設定がどうであれ必ず junk と見 なされる約束がある。このため、上記の意味にしたがって junk 属性を =tagging-method の中で適切に設定すれば、今後将来にわたっても
$ tla inventory -j | xargs rm -r
として、tla を内部的な一時ファイルを含むジャンクファイルす べてを削除することができる。そのような利用方法を狙っている。