なんでこんなことに — inventory 名前規約について

多くのシステムはソースファイルを認識するための名前規約はありますが、 arch を初めて利用する人はよく、なぜarch がこれほど たくさんのファイルの分類を持っているかを不思議に思うようです。arch が以下のような分類を持っていることを思い出してください:

        excluded
        source
        precious
        junk
        backups
        unrecognized

それぞれのグループの必要性は、以下のように説明できます:

excludedarch の制御ファイルが特に興味を もたないような必要に一般的な場合に目録リストを簡潔な形に保つために用意されただけのものです。 これはlsコマンドの「ドットファイル」を扱う場合とよく似ていて、 inventory に対する––all フラグは、ls に対する-a フラグによく似ています。

sourcearch がソースファイルを他のものと 確実に区別することができるように用意されたものです。たとえば、二つのソースツリーを比較するさい、 archsourceの分類中のファイルのみを比較します。

precious ファイルはarch が、そのままの形 でできる限り保持しようとするファイルです。たとえば、もし arch が あなたのためにプロジェクトツリーのコピーを必要としている場合、source ファイルと一緒にprecious ファイルもコピーします。たとえば、 ソースファイルで作業すると同時に、何かのメモをとっているとします。あなたはそのノート ファイルをソースコードの一部だとして間違って欲しくはありませんが、しかし、そのファイル を失いたくもありません。このような場合、ファイルにprecious に マッチする名前を選びます。(たとえば、+notesのような)

junk プロジェクトツリー上で作業しているときに 「使い捨て」ファイルを作りたいことがよくあります。ちょっとした テストプログラムをコンパイルしたい場合や、あるコマンドの出力結果を保存したい ような場合です。そのようなファイルがある程度たまってきたときに、どのファイルが 大事なもので、どれが消したいものかを注意深く区別せずに、後のほうのファイルだけ を一度に消してしまうことができると便利です。 junk 名はこのような目的にぴったりです。そのような使い捨てファイル を作る場合は、名前を,fooのようなものにしてください。後で 安全確実に以下のようなコマンドを実行することができます:

        % rm ,*

        % find . -name ',*' | xargs rm

        % larch inventory --junk | xargs rm

backups エディタが作るバックアップファイルや、 patch のようなプログラムによって作られるバックアップファイルは よく特殊な扱いが必要になります。たとえばエディタが「番号づけされたバックアップ 」を作る場合、それらはほとんど ゴミファイルに近いもの ですが、すべて消してしまって良いものでもく、その中のどれかだけを削除したいことが あります。

unrecognized ソースツリー中のファイルで、どのような知られたパターンにも (あるいは疑わしい名前にも)当てはまらないようなものは、 たいていの場合、何かがうまくいっていないことを示しています。 そのようなファイルを黙って無視したり preciousjunkであるとして扱ったりする かわりに、arch はこのような例外に明示的なフラグを付けて、 ユーザに警告できるようにします。

全体的に、ファイル名前規約の採用は多くのプログラマにとってなじみのない規則かも 知れませんが、私が強く推奨するもののひとつです。このような規約に従うことは 簡単なことで、それによってinventory や後述の tree-lint のようなツールは、ソースコードを制御できない状態から正常に保つための助けになります。