テストやバグ解析で効率的に使う!WinMergeのファイル比較機能
WinMergeはオープンソースで無料で使えるマージツールですが、マージの前提となるファイル比較機能だけを見ても、様々な機能があります。
この記事では、WinMergeのファイル比較機能をピックアップして紹介します。ファイル比較はテスト(特にデグレードテスト)やバグ解析などで有用な手段ですので、それらを効率化できるWinMergeの機能を知ってもらえればと思います。
下の目次をクリックすると、説明に素早くジャンプできます。
基本説明
画面レイアウト
WinMergeの基本となる画面レイアウトはこのようになっています。
![画面レイアウト](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Ff1232b1e257145039201bf24a59b9a18%2F%25E7%2594%25BB%25E9%259D%25A2%25E3%2583%25AC%25E3%2582%25A4%25E3%2582%25A2%25E3%2582%25A6%25E3%2583%2588.webp&fm=webp&w=819&h=882)
ファイルペイン、ロケーションペイン、Diffペインの3つに大きく分かれています。
ファイルペインはメインの比較結果を表示し、ロケーションペインはファイル全体の概要をマップ表示します。
Diffペインはファイルペインで選択された差異のみが表示され、差異の中でどこの個所が違っているのかハイライトしてくれます。
ファイルペインで選択したい差異をダブルクリック、もしくはカーソルを移動してAlt
+ Enter
を押すと選択状態になり、Diffペインに表示されます。
CSV、TSVファイルのテーブル表示
CSV、もしくはTSVファイルを比較すると、下の様に区切り文字ごとに列が区切られた、テーブル表示されます。
設定をすることで、カンマ、タブ以外の区切り文字もテーブル表示することができます。
![CSV、TSVファイルのテーブル表示](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F9ccaa380f84d4126ab64aef7de913b03%2FCSV%25E3%2580%2581TSV%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%25AB%25E3%2581%25AE%25E3%2583%2586%25E3%2583%25BC%25E3%2583%2596%25E3%2583%25AB%25E8%25A1%25A8%25E7%25A4%25BA.webp&fm=webp&w=955&h=957)
バイナリデータ比較
比較時にバイナリ形式を選択することで、バイナリデータを比較することができます。また、バイナリ形式で比較するファイル名のパターンを設定しておくことも可能です。
![バイナリデータ比較](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fb5798f462e7b428db6b3d7409c8ea4ee%2F%25E3%2583%2590%25E3%2582%25A4%25E3%2583%258A%25E3%2583%25AA%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E6%25AF%2594%25E8%25BC%2583.webp&fm=webp&w=957&h=549)
イメージ比較
画像ファイルを比較することも可能です。下の様に差異を点滅表示することもできます。
![イメージ比較](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fe410b25aed034a0c9d64a66ad497f762%2F%25E3%2582%25A4%25E3%2583%25A1%25E3%2583%25BC%25E3%2582%25B8%25E6%25AF%2594%25E8%25BC%2583.webp&fm=webp&w=954&h=440)
指定したURLのWebページ比較
WinMerge Version 2.16.38.0の時点では実験的な機能となっていますが、下の様にファイルの代わりにURLを指定し、比較の「Webページ」を選択することでWebページの比較をすることが可能です。
![指定したURLのWebページ比較-指定](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F09d7465f5a8840049d4de70635cbf4be%2F%25E6%258C%2587%25E5%25AE%259A%25E3%2581%2597%25E3%2581%259FURL%25E3%2581%25AEWeb%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E6%25AF%2594%25E8%25BC%2583-%25E6%258C%2587%25E5%25AE%259A.webp&fm=webp&w=641&h=499)
比較するとこのように表示されます。
![指定したURLのWebページ比較-結果](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F9a162fcfa59e4455aade3adf2c04087d%2F%25E6%258C%2587%25E5%25AE%259A%25E3%2581%2597%25E3%2581%259FURL%25E3%2581%25AEWeb%25E3%2583%259A%25E3%2583%25BC%25E3%2582%25B8%25E6%25AF%2594%25E8%25BC%2583-%25E7%25B5%2590%25E6%259E%259C.webp&fm=webp&w=1155&h=581)
開始方法
ファイル比較を開始する
- 「ツールバー」⇒「開く」から選択ダイアログを表示させます。
- 1番目と2番目の「ファイルまたはフォルダー」に比較したいファイルを指定します。ファイルをドラッグアンドドロップすることでも指定可能です。
- 比較をクリックします。
![ファイル比較を開始する](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fc5c0e9837ddd431c98dd0580c97df90a%2F%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%25AB%25E6%25AF%2594%25E8%25BC%2583%25E3%2582%2592%25E9%2596%258B%25E5%25A7%258B%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=880&h=650)
フォルダ単位でまとめて比較開始する
選択ダイアログにフォルダを指定すると、フォルダにあるファイルがまとめて比較されます。
結果は下の様に一覧で表示され、ファイルをダブルクリックすると個別の比較結果が表示されます。
![フォルダ単位でまとめて比較開始する](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F243fc17d64a649659abb68ef373bbde8%2F%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25AB%25E3%2583%2580%25E5%258D%2598%25E4%25BD%258D%25E3%2581%25A7%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%25AB%25E6%25AF%2594%25E8%25BC%2583%25E3%2582%2592%25E3%2581%25BE%25E3%2581%25A8%25E3%2582%2581%25E3%2581%25A6%25E9%2596%258B%25E5%25A7%258B%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=808&h=320)
エクスプローラの右クリックから比較を開始する
Windowsのエクスプローラでファイルを選択し、「右クリック」⇒「WinMerge」をクリックすることでも、ファイル比較を開始することができます。
![エクスプローラの右クリックから比較を開始する](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F1cba9e5a74514b76850306680a05caaa%2F%25E3%2582%25A8%25E3%2582%25AF%25E3%2582%25B9%25E3%2583%2597%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%25A9%25E3%2581%25AE%25E5%258F%25B3%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%2583%25E3%2582%25AF%25E3%2581%258B%25E3%2582%2589%25E6%25AF%2594%25E8%25BC%2583%25E3%2582%2592%25E9%2596%258B%25E5%25A7%258B%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=376&h=494)
ファイルを圧縮したまま比較を開始する
ZIPファイルなどの圧縮ファイルも、解凍することなく、そのまま指定すれば比較を開始することができます。
比較設定
「ツールバー」⇒「設定」からオプションダイアログを開き、「比較」から比較の設定をすることができます。
![比較設定](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fff84b37f9cdf46e4aebd12a3401d9710%2F%25E6%25AF%2594%25E8%25BC%2583%25E8%25A8%25AD%25E5%25AE%259A.webp&fm=webp&w=626&h=537)
空白の比較方法を変更する
「ツールバー」⇒「設定」⇒「比較」から、「空白」にある「比較する」、「変更を無視」、「すべて無視」のいずれかを選択します。
「変更を無視」の変更とは空白自体の変更を指します。つまり、「変更を無視」を選択すると、半角スペースが1つから2つになったり、半角スペースがタブになった場合は、差異なしとなります。
全角スペースは空白とはみなされない仕様となっているようで、「変更を無視」や「すべて無視」を選択しても差異として判定されます。
空行を無視するようにする
「ツールバー」⇒「設定」⇒「比較」から、「空行を無視する」にチェックを入れます。
大文字と小文字を区別しないようにする
「ツールバー」⇒「設定」⇒「比較」から、「大文字と小文字を区別しない」にチェックを入れます。
改行文字の違いを無視するようにする
「ツールバー」⇒「設定」⇒「比較」から、「改行文字の違いを無視する」にチェックを入れます。
数字を無視するようにする
「ツールバー」⇒「設定」⇒「比較」から、「数字を無視する」にチェックを入れます。
文字コードの違いを無視するようにする
「ツールバー」⇒「設定」⇒「比較」から、「コードページの違いを無視する」にチェックを入れます。
コードのコメントの違いを無視するようにする
「ツールバー」⇒「設定」⇒「比較」から、「コメントの違いを無視する」にチェックを入れます。
移動したブロックを検知するようにする
「ツールバー」⇒「設定」⇒「比較」から、「移動ブロック検出を有効にする」にチェックを入れます。
類似行をマッチさせるようにする
「ツールバー」⇒「設定」⇒「比較」から、「類似行をマッチさせる」にチェックを入れます。
使用するDiffアルゴリズムを変更する
「ツールバー」⇒「設定」⇒「比較」から、「Diff アルゴリズム」を変更します。
「patience」または「histogram」にすると、「default」より人が期待した結果が得られるとのことです。いろいろと設定を変えて、実際に比較してみるのがおすすめです。
default を選択した場合、今まで通りの比較結果となり、patience または histogram を選択すると default よりは人が期待した比較結果が得られるようになります。
— winmerge_jp (@winmerge_jp) April 29, 2019
例( is_eol 関数を上に移動しただけのファイルと比較した場合) pic.twitter.com/vxzSYOH3an
比較判定がおかしいと思ったときに確認すること
比較設定を見直して、意図しない設定が有効となっていないか確認してください。
「ツールバー」の「設定」の右にある▼からも、いくつか比較設定を確認することが可能です。
![比較判定がおかしいと思ったときに確認すること](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F6d82a12838514f9caa38c2f70397217d%2F%25E6%25AF%2594%25E8%25BC%2583%25E5%2588%25A4%25E5%25AE%259A%25E3%2581%258C%25E3%2581%258A%25E3%2581%258B%25E3%2581%2597%25E3%2581%2584%25E3%2581%25A8%25E6%2580%259D%25E3%2581%25A3%25E3%2581%259F%25E3%2581%25A8%25E3%2581%258D%25E3%2581%25AB%25E7%25A2%25BA%25E8%25AA%258D%25E3%2581%2599%25E3%2582%258B%25E3%2581%2593%25E3%2581%25A8.webp&fm=webp&w=501&h=269)
表示
「メニューバー」⇒「表示」から表示内容を変更することができます。
![表示](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F02bde11f8956415ea645326e129825ef%2F%25E8%25A1%25A8%25E7%25A4%25BA.webp&fm=webp&w=239&h=552)
空白を表示する
「メニューバー」⇒「表示」から、「空白を表示」を選択する。
改行を表示する
「メニューバー」⇒「表示」から、「改行を表示」を選択する。
行番号を表示する
「メニューバー」⇒「表示」から、「行番号を表示」を選択する。
右端でで折り返して表示する
「メニューバー」⇒「表示」から、「行を右端で折返す」を選択する。
差異のみ、もしくは差異の近辺のみを表示する
「メニューバー」⇒「表示」から、「Diff コンテキスト」を開き、行数を選択する。
- 全行(デフォルト):すべて表示する
- 0行:差異のみ表示する
- n行:差異からn行分のみ表示する
移動ブロック検知で検知した差異が、どこから移動したのか表示する
「ロケーションペイン」を「右クリック」し、「全移動ブロック表示」を選択する。
下の様にロケーションペインで、移動したブロック同士が左右つながって表示されるようになる。
![移動ブロック検知で検知した差異が、どこから移動したのか表示する](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fce167aba703f4a33802ef750dec0e132%2F%25E7%25A7%25BB%25E5%258B%2595%25E3%2583%2596%25E3%2583%25AD%25E3%2583%2583%25E3%2582%25AF%25E6%25A4%259C%25E7%259F%25A5%25E3%2581%25A7%25E6%25A4%259C%25E7%259F%25A5%25E3%2581%2597%25E3%2581%259F%25E5%25B7%25AE%25E7%2595%25B0%25E3%2581%258C%25E3%2580%2581%25E3%2581%25A9%25E3%2581%2593%25E3%2581%258B%25E3%2582%2589%25E7%25A7%25BB%25E5%258B%2595%25E3%2581%2597%25E3%2581%259F%25E3%2581%25AE%25E3%2581%258B%25E8%25A1%25A8%25E7%25A4%25BA%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=260&h=356)
比較開始時に、最初の差異の場所が自動的に表示されるようにする
「ツールバー」⇒「設定」からオプションダイアログを開き、「一般」にある下の2項目にチェックを入れる。
![比較開始時に、最初の差異の場所が自動的に表示されるようにする](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F88e125824da747be9e5ec8199e656e78%2F%25E6%25AF%2594%25E8%25BC%2583%25E9%2596%258B%25E5%25A7%258B%25E6%2599%2582%25E3%2581%25AB%25E3%2580%2581%25E6%259C%2580%25E5%2588%259D%25E3%2581%25AE%25E5%25B7%25AE%25E7%2595%25B0%25E3%2581%25AE%25E5%25A0%25B4%25E6%2589%2580%25E3%2581%258C%25E8%2587%25AA%25E5%258B%2595%25E7%259A%2584%25E3%2581%25AB%25E8%25A1%25A8%25E7%25A4%25BA%25E3%2581%2595%25E3%2582%258C%25E3%2582%258B%25E3%2582%2588%25E3%2581%2586%25E3%2581%25AB%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=620&h=494)
結果出力
HTML形式で比較結果を出力する
「メニューバー」⇒「レポートの生成」をクリックする。
![HTML形式で比較結果を出力する](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2Fb7e9eb2ff0784614bd4e42f4432b8bb1%2FHTML%25E5%25BD%25A2%25E5%25BC%258F%25E3%2581%25A7%25E6%25AF%2594%25E8%25BC%2583%25E7%25B5%2590%25E6%259E%259C%25E3%2582%2592%25E5%2587%25BA%25E5%258A%259B%25E3%2581%2599%25E3%2582%258B.webp&fm=webp&w=254&h=104)
参考
この記事は以下の情報を参考にしました。
- WinMergeヘルプファイル
- 「メニューバー」⇒「ヘルプ」⇒「WinMergeヘルプ」から表示
更新履歴
- 2024/02/04 WinMerge (ver 2.16.38.0)の内容をもとに初版作成
関連タグの記事
![Ryota Kondo](/.netlify/images?url=https%3A%2F%2Fimages.microcms-assets.io%2Fassets%2F3693d4e817ba44f39598495c5e648416%2F3995f2f7d4374fd5bcf444c11f56ddd7%2Frk-icon.png&fm=webp&w=100&h=100)