4. Winmerge - 独自フィルタの作成

 
 Winmerge にはいくつかのフィルタが用意されていますが、プロジェクトの設定に合わせて独自のフィルタを作成すると仕事がやりやすくなります。
4.1 フィルタとは
4.2 フィルタファイルの場所
4.3 フィルタファイルの作成

4.1 フィルタとは

 プロジェクトで開発を行っているときに、更新ファイルと更新前のファイルの差分を見て、どこに更新がかかっているかを確認することがあります。  そういう際に、ファイル一つ一つを確認していたのではらちがあきませんので、フォルダ一括で差分を確認します。  一括で差分を確認するとき、例えばソースファイルは差分を見たいけれどもオブジェクトファイルは差分を見たくないわけです。  拡張子でいうと *.c は差分をみますが、*.obj は差分を見ないわけです。そういった拡張子や特定のフォルダを見ないようにフィルタを設定することができます。  Winmerge を開いて『フォルダ』のアイコンをクリックすると

 フォルダの選択画面が出てくるわけですが、下の方にフィルタの選択を選ぶ欄があります。
 デフォルトでは *.* になっているのですべてのファイルを比較対象としているわけです。


4.2 フィルタファイルの場所

 「選択」をクリックするとフィルタを選択することができますが、そこに『場所』の欄があって。  見てみるとデフォルトで用意されているフィルタは「C:\Program Files\WinMerge\Filters」に存在することがわかります。拡張子は「fil」になっています。

4.3 フィルタファイルの作成

 拡張子「fil」を上記の場所に作成することで新規にフィルタファイルを作成することができます。  文法はそこまで難しいものではありません。  基本は

キーワード : 定義
 という構成になっています。  「##」と書けば、それ以降はコメントになります。  基本的なキーワードは以下の通りです。
キーワード 意味
name フィルタ名
desc 説明
include これはよくわかっていません
f ファイルのフィルタ定義
d ディレクトリのフィルタ定義
 フィルタ名は重複しないような名前であればなんでもかまいません。  説明も好きなような説明をいれればよいと思います。  ファイル名は個別のファイル名を書くこともありますが、普通は拡張子で定義するかと思います。  正規表現で記述します。

f: \.exe$
 上記の例は、ファイルの名称部はなんでもよく「.exe」という拡張子を持つものをフィルタするという意味です。  「\.」は「.」をクォートしているわけで「exe$」はファイルの末尾が「exe」という意味です。

d: \\Debug$
 上記の例は、Visual Studio でデバッグモードでビルドすると勝手に作成される「Debug」というディレクトリをフィルタしています。  これらを組み合わせて、独自のフィルタを作ることで作業の効率をあげることができます。