ほとんどのプロジェクトでは、バージョン管理の対象とすべきでないファイルやフォルダーがあるでしょう。これには、コンパイラーによって作成されたファイル (*.obj, *.lst
) や、実行可能ファイルを保存するために使用される出力フォルダーなどが含まれる場合があります。変更をコミットするたびに、TortoiseSVN はバージョン管理されていないファイルを表示するため、コミットダイアログのファイルリストがいっぱいになります。もちろん、この表示をオフにすることはできますが、その場合、新しいソースファイルを追加するのを忘れてしまう可能性があります。
これらの問題を回避する最良の方法は、派生ファイルをプロジェクトの無視リストに追加することです。そうすれば、それらはコミットダイアログに表示されることはありませんが、正当なバージョン管理されていないソースファイルは引き続きフラグが立てられます。
単一のバージョン管理されていないファイルを右クリックし、コンテキストメニューから → コマンドを選択すると、そのファイルのみ、または同じ拡張子を持つすべてのファイルを選択できるサブメニューが表示されます。両方のサブメニューには、(再帰的に)
に相当するものもあります。複数のファイルを選択した場合、サブメニューはなく、それらの特定のファイル/フォルダーのみを追加できます。
無視コンテキストメニューの(再帰的に)
バージョンを選択した場合、項目は選択したフォルダーだけでなく、すべてのサブフォルダーでも無視されます。ただし、これには SVN クライアント バージョン 1.8 以降が必要です。
無視リストから 1 つ以上の項目を削除したい場合は、それらの項目を右クリックし、 → を選択します。フォルダーの svn:ignore
プロパティに直接アクセスすることもできます。これにより、以下のセクションで説明されているファイル名グロビングを使用して、より一般的なパターンを指定できます。プロパティを直接設定する方法の詳細については、「プロジェクト設定」のセクションをお読みください。各無視パターンは、別の行に配置する必要があることに注意してください。スペースで区切っても機能しません。
ファイルを無視する別の方法は、グローバル無視リストに追加することです。ここでの大きな違いは、グローバル無視リストがクライアントプロパティであるということです。これはすべての Subversion プロジェクトに適用されますが、クライアント PC のみです。一般に、可能な場合は svn:ignore
プロパティを使用する方が優れています。なぜなら、特定のプロジェクト領域に適用でき、プロジェクトをチェックアウトするすべての人に有効だからです。詳細については、「一般設定」のセクションをお読みください。
バージョン管理されたファイルとフォルダーは決して無視できません。それは Subversion の機能です。誤ってファイルをバージョン管理してしまった場合は、それを「バージョン管理から外す」方法について、「すでにバージョン管理されているファイルを無視する」のセクションをお読みください。
Subversion の無視パターンは、ファイル名のグロビングを使用しています。これは元々 Unix で、メタ文字をワイルドカードとして使用してファイルを指定するために使用されていた手法です。次の文字は特別な意味を持ちます
空文字列 (文字なし) を含む、任意の文字列に一致します。
任意の 1 文字に一致します。
角括弧で囲まれた文字のいずれか 1 つに一致します。括弧内では、「-」で区切られた 2 文字のペアは、その 2 文字の間の字句的に任意の文字に一致します。たとえば、[AGm-p]
は、A
、G
、m
、n
、o
、または p
のいずれかに一致します。
パターンマッチングは大文字と小文字を区別するため、Windows で問題が発生する可能性があります。文字をペアにすることで、強引に大文字と小文字を区別しないようにすることができます。たとえば、大文字と小文字に関係なく *.tmp
を無視するには、*.[Tt][Mm][Pp]
のようなパターンを使用できます。
グロビングの公式な定義が必要な場合は、シェルコマンド言語の IEEE 仕様 パターンマッチング表記 に記載されています。
パターンにパス情報を含めるべきではありません。パターンマッチングは、プレーンなファイル名とフォルダー名に対して使用することを目的としています。CVS
フォルダーをすべて無視したい場合は、無視リストに CVS
を追加するだけです。以前のバージョンで行っていたように、CVS */CVS
を指定する必要はありません。tmp
フォルダーを prog
フォルダー内にある場合は無視し、doc
フォルダー内にある場合は無視しないようにしたい場合は、代わりに svn:ignore
プロパティを使用する必要があります。グローバル無視パターンを使用してこれを実現する信頼できる方法はありません。