無視するファイルとディレクトリ

図4.28 バージョン管理外のファイルでのエクスプローラコンテキストメニュー

バージョン管理外のファイルでのエクスプローラコンテキストメニュー


ほとんどのプロジェクトで、バージョン管理下にあるべきでないファイルやフォルダがあることでしょう。コンパイラが作成したファイル、*.obj, *.lst や、もしかしたら実行ファイルを格納する出力フォルダもそうでしょう。変更をコミットの際、TortoiseSVN はコミットダイアログにバージョン管理外のファイルを表示します。もちろんこの表示を off にできますが、そうすると、新しいソースファイルの追加を忘れるかもしれません。

こういった問題を避ける最良の方法は、プロジェクトの無視リストに、派生ファイルを追加することです。この方法だと、派生ファイルがコミットダイアログに現れなくなりますが、本当にバージョン管理外のファイルは現れるままになります。

バージョン管理外のファイルで 右クリック し、コンテキストメニューでTortoiseSVN無視リストに追加 コマンドを選択すると、選択したファイルのみか、同じ拡張子を持つファイルすべてかを選択するサブメニューを表示します。複数のファイルを選択すると、サブメニューを表示せず、指定したファイル・フォルダを追加します。

無視リストから項目を削除したい場合、その項目で 右クリック し、TortoiseSVN無視リストから削除 を選択してください。フォルダの svn:ignore 属性に直接アクセスすることもできます。これにより、ファイル名展開にもっと一般的なパターンが指定ができます。属性を直接指定することについては、「プロジェクト設定」 をご覧ください。無視パターンは行ごとに区切らなければならないことをご承知おきください。空白で区切ったパターンは動作しません。

共通無視リスト

ファイルを無視する別の方法は、共通無視リスト に追加することです。共通無視リストはクライアントの属性ということが、大きく違います。これは Subversion プロジェクトに適用されますが、クライアント PC でしか適用されません。一般的には、可能なら svn:ignore 属性を使用する方がよいです。指定したプロジェクトエリアで適用され、プロジェクトをチェックアウトした人すべてに適用されるからです。詳細は 「一般設定」 をご覧ください。

バージョン管理下項目の無視

バージョン管理下のファイルやフォルダは無視できません。これは Subversion の機能です。間違えてバージョン管理下に入れてしまった場合は、「バージョン管理外のファイルの無視」 にある、バージョン管理外にする方法をご覧ください。

無視リストでのパターンマッチ

Subversion の無視パターンは、ファイル名展開を使用できます。これは本来 Unix でファイルを指定するのにメタキャラクタをワイルドカードとして使用するテクニックです。以下の文字が特別な意味を持ちます。

*

空文字列 (文字なし) を含む任意の文字列にマッチします。

?

任意の 1 文字にマッチします。

[...]

角かっこで囲まれた一文字にマッチします。かっこ内にある - で繋がった 2 つの文字は、辞書的にその 2 つの文字の間にある文字にマッチします。例えば、[AGm-p]A, G, m, n, o, p のいずれかにマッチします。

パターンマッチは大文字小文字を区別しますが、これは Windows で問題の原因になるかもしれません。両方指定すれば、強制的に大文字小文字を区別しないようにできます。例えば、大文字小文字に関わらず *.tmp を無視するには、*.[Tt][Mm][Pp] といったパターンで指定できます。

展開の公式定義が必要な場合、シェルコマンド言語の IEEE 仕様書 Pattern Matching Notation で手に入ります。

共通無視リストにはパスを含めません

パターンにパス情報を含めるべきではありません。パターンマッチングは、単純なファイル名やフォルダ名に対して使用することを想定されています。CVS フォルダをすべて無視したい場合は、無視リストに、単に CVS と追加してください。以前のバージョンのように、CVS */CVS と指定する必要はありません。prog フォルダにある tmp フォルダをすべて無視したいけれども、doc フォルダにあるものは無視したくない場合は、共通無視リストではなく svn:ignore 属性を使用するべきです。この用途に共通無視リストを使用する、信頼性のある方法はありません。