リソースを同期化する場合に、ストリームにリリースしたくないリソースがいくつかある場合があります。 このため、キャッチアップおよびリリース操作から除外するリソースを指定することができるようにするための無視機能が 2 つ提供されています。
最初の無視機能は、グローバルな無視機能で、ワークベンチにより提供されています。2 つ目の無視機能は CVS 無視機能で、この機能を使用すると、特殊なファイル .cvsignore の内容を読み込み、無視するものを決定することができます。
リポジトリーにリリースしたくないファイルの種類は数多くあります。
たとえば、外部エディターは、プロジェクト内に一時ファイルを作成する場合があります。
.java ファイルをコンパイルすると、.class ファイルが作成されます。
同様に、多くのビルド操作によってバイナリー・ファイルが作成されます。これらのファイルをひとまとめにすると、きわめて大きくなることがあります。
また、それらのファイルは、ビルドを実行するたびに再生成される場合があり、多くの発信変更が生じます。
一般にこれらは、チームの他のメンバーと共用したくないファイルであったり、リポジトリー内で永続化させたくないファイルであったりします。
グローバルな無視機能は、「チーム (Team)」設定ページを介してワークベンチにより提供されます。
リソースは、ファイル・パターンのリストと突き合わされて、バージョン管理の候補と見なされます。
これらのパターンには、ワイルドカード文字の "*" および "?" を含めることができます。
"*" は、連続する、ゼロ、1 つ、または複数の任意の文字を表します。
"?" は、任意の 1 文字を表します。
たとえば、"*~" というパターンを指定すると、このパターンは、"~" で終了する一時ファイルに一致します。
パターンのいずれか 1 つに一致するファイルまたはディレクトリーは、キャッチアップ中またはリリース操作中は無視されます。
グローバルな無視機能におけるパターンは、同期化中にリソース名と突き合わされます。
リソース名に至るパスは、突き合わせには含まれません。このことは、重要です。
たとえば、ファイル "/path/to/file.txt" の場合、ストリング "file.txt" のみがパターンと突き合わされます。
この機能は、完全修飾パス名を指定することを意図したものではなく、グローバルに適用できるパターンを指定することを意図したものです。
Eclipse CVS クライアントは、プロジェクトの各ディレクトリー内の ".cvsignore" という名前のファイルを認識します。
これは標準的な CVS 機能で、既存の多くの CVS プロジェクトに、このファイルを含めることができます。
このテキスト・ファイルは、ファイル、ディレクトリー、またはパターンのリストで構成されています。
グローバルな無視機能と同様の方法で、ワイルドカード "*" と "?" を .cvsignore ファイル内の任意の項目に使用することができます。
パターンのいずれか 1 つに一致する現行ディレクトリー内のファイルまたはサブディレクトリーは、無視されます。
このファイルのセマンティクスは、cvsignore ファイルそれ自体と同じディレクトリー内にあるファイルおよびディレクトリーのみに適用されるという点で、グローバルな無視機能のセマンティクスとは異なっていることに注意してください。
1 つのプロジェクトの各ディレクトリーごとに 1 つの .cvsignore ファイルを含めることができます。
詳細については、http:\\www.cvshome.org をご覧ください。
リソースがバージョン管理下に置かれてしまうと、それ以降は簡単にリソースを無視することはできなくなります。 同期化操作がリソースまたはその親フォルダーのいずれかに対して実行されると、まず最初にリソースがバージョン管理下に置かれます。 最初の同期化操作を行う前に、どのファイルおよびディレクトリーを無視して、それらを該当する無視機能に追加するのかをよく考えてください。 たとえば、次のシナリオを考えてみます。
「チーム (Team)」>「ストリームと同期化 (Synchronize with Stream)」操作が選択済みであっても、まだリリースしていない場合は、リソースを無視することができます。
これは、ワークベンチはすでにこれらのファイルをバージョン管理下に置かれているものと見なしている、という事実に反するものです。
最初に、無視するファイルを削除必要があります (これは通常問題にはなりません。無視されるファイルは、一時ファイルか重要なファイル、すなわちソースのビルド結果だからです)。
次にグローバルな無視機構または CVS 無視機構を使用して無視パターンを追加します。
この時点では、無視されるファイルが戻るようにプロジェクトを再ビルドし、そのプロジェクトをストリームに同期化することができます。これにより、ファイルは無視されます。