WinMerge 日本語版

ファイルやフォルダの比較ができてマージもできる、WinDiffを使い易くしたようなソフトWinMergeの日本語版
GUIな CVS, Subversionクライアントのお供にでもどうぞ。

32bit版ダウンロード 64bit版ダウンロード

WinMerge日本語版
バージョン 日付 インストーラ Zip版 ソース
安定版
2.14.0+-jp-152 2018-04-29 32bit版(XP以降)(5.66MB)
64bit版(XP以降)(6.27MB) VirusTotal チェック結果 32bit版 64bit版
32bit版(XP以降)(8.12MB)
64bit版(XP以降)(9.36MB) VirusTotal チェック結果 32bit版 64bit版
ソース(13.97MB) ソース(Bitbucket) VirusTotal チェック結果 ソースコード
2.14.0+-jp-151 2018-03-29 32bit版(XP以降)(5.65MB)
64bit版(XP以降)(6.24MB) VirusTotal チェック結果 32bit版 64bit版
32bit版(XP以降)(8.11MB)
64bit版(XP以降)(9.31MB) VirusTotal チェック結果 32bit版 64bit版
ソース(13.96MB) ソース(Bitbucket) VirusTotal チェック結果 ソースコード
2.14.0+-jp-148 2018-02-28 32bit版(XP以降)(5.65MB)
64bit版(XP以降)(6.23MB) VirusTotal チェック結果 32bit版 64bit版
32bit版(XP以降)(8.10MB)
64bit版(XP以降)(9.30MB) VirusTotal チェック結果 32bit版 64bit版
ソース(13.94MB) ソース(Bitbucket) VirusTotal チェック結果 ソースコード
プレリリース版
ダウンロード
旧安定版
2.12.4+-jp-31 2012-03-26 32bit版(XP以降)(3.83MB)
32bit版(2000/98/ME)(2.88MB)
64bit版(XP以降)(4.20MB)
32bit版(XP以降)(7.21MB)
32bit版(2000/98/ME)(4.60MB)
64bit版(XP以降)(8.20MB)
ソース(5.28MB) 7015(branches/R2_12)
2.10.4+-jp-1 2009-01-26 ダウンロード(2.87MB) ダウンロード(4.92MB) ダウンロード(5.09MB) 6318(trunk/R2_10)
2.8.6+-jp-2 2008-09-01 ダウンロード(2.75MB) ダウンロード(4.84MB) ダウンロード(8.62MB) 5745(branches/R2_8)
2.6.14+-jp-1 2008-03-17 ダウンロード(2.57MB) ダウンロード(4.37MB) ダウンロード(3.29MB) 4928(branches/R2_6)
2.4-jp-4 2005-11-08 ダウンロード(2.54MB) ダウンロード(3.31MB) ダウンロード(4.78MB) CVS R2_4
2.2-jp-1 2004-11-14 ダウンロード(2.67MB) ダウンロード(2.94MB) ダウンロード(1.95MB) CVS R2_2
Frhed (2.14.0+-jp-68まで同梱していたバイナリエディタのWinMerge日本語版向け改造版)
バージョン 日付 ファイル ソース
0.10902.2015.5 2015-03-01 Frhed 32bit版(0.24MB) Frhed 64bit版(0.25MB) ソース(Bitbucket)
WinMergeプラグイン(インストーラやZip版にも同じものが同梱されています。プラグインを使用するには 展開された *.sct, *.dll ファイルを MergePlugins フォルダにコピーしてください)
名前 日付 ファイル
プラグインパック(32bit版)(要2.14.0+-jp-63以上) 2018-04-29 ダウンロード(0.28MB)
プラグインパック(64bit版)(要2.14.0+-jp-63以上) 2018-04-29 ダウンロード(0.30MB)

PortableAppsの一員としてWinMerge Portableが加わりましたが、そのWinMerge PortableのファイルをWinMerge日本語版のものに置き換えることでWinMerge日本語版がPortable版になります。

入れ替え方法

  • http://portableapps.com/apps/utilities/winmerge_portableからWinMerge Portableをダウンロードし、インストールします。
  • [PortableAppsフォルダ\WinMergePortable\App\WinMerge]フォルダをリネームします。
  • Zip版(winmerge-x.x-jp-x-exe.zip等)を展開し、展開された[WinMerge]フォルダを[PortableAppsフォルダ\WinMergePortable\App\]フォルダ内にコピーします。
  • dirview

    ディレクトリ比較

  • fileview

    ファイル比較

  • preview

    印刷プレビュー

  • report

    HTMLレポート

  • github_bitbucket_colorscheme

    GitHub/Bitbucket カラースキーマ

  • imgdiff

    画像比較

  • diff_excel

    プラグインによるExcelシートの画像化比較

  • drag-drop

    ドラッグ&ドロップ

  • excel-plugin

    Excelプラグイン

  • prediff-linefilter-plugin

    PrediffLineFilterプラグイン

  • drag-mode

    画像比較:ドラッグモード

  • overlay-animation

    画像比較: オーバーレイアニメーション

  • 日本語ヘルプを添付
  • ファイルの文字コード自動検出([編集]→[設定]→[コードページ]カテゴリ→[mlang.dll ... ]をチェック)
  • 3ファイル比較、3フォルダ比較
  • 64bit版の提供
  • 行内比較アルゴリズムの改善
  • Diffコンテキスト表示(差異のある行の周辺のみを表示するモード)(印刷やHTMLレポートにも反映される)
  • エディタ上で矩形選択可能(Altキーを押しながらマウス選択または、Ctrl+Bを押してからShift+カーソルキーで選択)
  • WinMergeで開いているファイルを外部エディタで編集・保存後、WinMergeをアクティブにしたときに変更を検出
  • 外部エディタの起動引数に$file, $linenum 指定可
  • VBScriptやJScriptで記述されたプラグインでも動作
  • フォルダ比較中でもファイルリスト表示。比較の進捗状況が確認でき、ファイルが開ける。
  • フォルダ比較ウインドウ、フォルダ比較レポートで差異ファイルの色付け
  • ファイル比較ウインドウで縦に並べて表示([表示]→[垂直分割])(バージョン 2.13 以降)
  • ファイル・フォルダオープンダイアログの変更(バージョン 2.13 以降)
  • Explorerでフォルダ選択時にシェルエクステンションアイコンを変更(バージョン 2.13 以降)
  • エンコードエラー時、文字コード選択、プラグイン選択、HEX表示の選択が可能(バージョン 2.13 以降)
  • フォルダ再比較後、フォルダツリー展開状態を復元(バージョン 2.13 以降)
  • フォルダ比較をマルチスレッドで実行(バージョン 2.13 以降)
  • 同期ポイントを設置可能(バージョン 2.14.0-jp-18 以降)
  • 3方向マージサポート機能(バージョン 2.14.0-jp-29 以降)
  • 簡易画像比較・マージ機能(バージョン 2.14.0-jp-56 以降)
  • 「バイナリコンテンツ」フォルダ比較方法の追加(バージョン 2.14.0-jp-68 以降)
  • ドラッグ&ドロップ機能の改善(バージョン 2.14.0-jp-74 以降)

3方向マージ(3-way merge)とは

あるファイルから他者と自分が別々の変更を行った結果、2つのファイルができてしまったため、 他者が修正したファイルと自分が修正したファイルをマージして 一つのファイルに戻したいとします。このとき、修正前の元のファイルが残っていれば、他者ファイル、自分のファイルの3つのファイルを元に ある程度自動的に修正を1つのファイルにマージすることが可能です。 この3つのファイルから(自動的な)マージをすることは、3方向マージ(3way-merge)と呼ばれています。

自動的なマージは、他者の修正と自分の修正箇所が被っていない箇所で可能です。たとえば、 あるファイルが小説のテキストだったとして、他者は第一章の誤字・脱字を修正し、自分は第三章の誤字・脱字を修正した場合は、 お互いの修正が被っていないのでどちらの修正も自動的にマージすることができます。しかし、他者と自分が同じ箇所(行)に 異なる修正を行った場合は、どちらの修正を採用してよいのか自動的に判断することができません。このような状態は コンフリクト(衝突/競合)と呼ばれ、手作業で修正を行うことになります。

P4MergeやKDiff3,DiffMerge,TortoiseMerge のようなツールはこの3方向マージをサポートしており、 WinMerge日本語版でも今更ではありますが、2.14.0-jp-29以降から利用可能となりました。 (実現方法としては、本当はp4mergeの様な4ペイン形式にしたかったのですが、 今まで実装する気力がわいてこなかったのと、最近3ペイン形式でもよいかと考え直して、今のように実装してみました) とはいえ、現時点では、3方向マージに関して他のツールよりも優位な点は特になく、むしろ、3ファイル比較時の差分検出精度がおそらく GNU diffutils の diff3 コマンドと同等程度で他のツールと比べて比較的大雑把になっているため、 他のツールがコンフリクトだと検出しないところでも コンフリクトと検出することがあります。このため、他のツールではうまくいないことがある場合や、 他のツールになじめなかった場合は、WinMerge日本語版を使用してみてください。

自動マージ

WinMergeで元のファイルと他者のファイルと自分のファイルの3つのファイルを開き、 [マージ]メニュー→[自動マージ(Alt+Ctrl+M)]またはツールバーのauto-mergeを選択すると コンフリクトしている箇所(他者と自分が同じ所を修正しているためどちらを採用してよいかわからない所)は除いて自動的にマージを行います。

WinMergeでは、現在アクティブになっているペインによってマージする方法を変えています。

  • 中央ペインで自動マージした場合は、[他者のファイル]-[元のファイル]-[自分のファイル]という順番で ファイルが並んでいるとみなし、コンフリクトしていない左側(他者)と右側(自分)の変更を中央(元)にマージします。
  • 右側ペインで自動マージした場合は、[元のファイル]-[他者のファイル]-[自分のファイル]という順番で ファイルが並んでいるとみなし、コンフリクトしていない中央(他者)の変更を右側(自分)にマージします。
  • 左側ペインで自動マージした場合は、[自分のファイル]-[他者のファイル]-[元のファイル]という順番で ファイルが並んでいるとみなし、コンフリクトしていない中央(他者)の変更を左側(自分)にマージします。

他の3ペイン方式のマージツールの多くは、最初の中央(元ファイル)に他者と自分の変更をマージする方式を採用していますが、 私は2番目の右側(自分)に中央(他者)の変更をマージする方式でも良いかなと思っています。 前者だとマージされる変更が他者と自分の両方となるためマージ量がどうしても多くなってしまい、 マージ後に通知される変更の数にぎょっとしてしまって心理的によくないのと、元のファイルが書き換わらないため、 マージ後でも他者がどのような修正を行ったのかを見ることができるのと、 マージ前にどの箇所が自動マージされるのかが事前にロケーションペインで水色で表示されている箇所としてわかるためです。 逆に後者だとマージすると自分のファイルの内容が変更されるため、マージ前の自分のファイルの内容と比較できなくなったり、 元のファイルと自分のファイルが離れているため、元と自分との比較がしにくくなります。好みの方法を選んでください。

なお、自動マージで変更された内容を元に戻したい場合は、Ctrl+Zキーで元に戻すことができます。 また、コマンドライン引数(/al,/am,/ar)を指定することによって、WinMerge起動時に自動で自動マージを行うことができます。

コンフリクト箇所への移動

自動マージでは、コンフリクトしている箇所はマージを行わずそのままの状態とするため、 手動でコンフリクト箇所を修正してください。

コンフリクトの箇所はロケーションペインで3つのバーの間が赤く表示されており、 自動マージ直後は、最初のコンフリクト箇所へ移動します。

次のコンフリクト箇所へ移動するには、[マージ]→[次のコンフリクト(Alt+Shift+Down)]または、ツールバーのnext-conflict アイコンをクリックしてください。

また、[マージ]→[前のコンフリクト(Alt+Shift+Up)]または、ツールバーの prev-conflictアイコンで前のコンフリクト箇所に移動することができます。

なお、コンフリクト箇所を未修正のまま保存しようとしても kdiff3 のように警告しませんので注意してください。 修正忘れが発生すると他者から俺の修正が見捨てられたと憤慨されることになります。

3方向マージの例

右側ペインにマージする例です。

自動マージ前

左側:[元のファイル]、中央:[他者のファイル]、右側:[自分のファイル]の順番でファイルを開きます。右側ペインでマージを行うため、 右側ペインにフォーカスを当てた後、ツールバーのauto-mergeをクリックすると自動マージが行われます。

before-3way-merge

自動マージ後

自動マージ後は、コンフリクトしている箇所(例では3番目の差異)を修正してください。この例では、例えば、return "cat"; を 他者の修正を尊重してreturn "dog and cat";のように修正します。

after-3way-merge

3方向マージに関連するコマンドラインオプション

/al
起動後、左側ペインで自動マージを行います。
/am
起動後、中央ペインで自動マージを行います。
/ar
起動後、右側ペインで自動マージを行います。
/o 出力ファイルパス
保存するとき、変更を行ったファイルそのものではなく、代わりに /o オプションで指定したファイルに変更を保存します。
/fl
起動後、左側ペインにフォーカスを当てます。
/fm
起動後、中央ペインにフォーカスを当てます。
/fr
起動後、右側ペインにフォーカスを当てます。
/wl
左側ペインの内容を書き換えることができないようにします。
/wm
中央ペインの内容を書き換えることができないようにします。
/wr
右側ペインの内容を書き換えることができないようにします。

バージョン管理ツールとの連携例

バージョン管理ツールを使用して複数の人と同時に開発すると3方向マージが必要な状況がよく発生します。 たいていのバージョン管理ツールでは3方向マージ用のツールが指定できるようになっています。

TortoiseSVN/TortoiseGIT との連携例

[設定]メニュー→[差分ビューアー/マージツール]で[外部]を選択し、その下のテキスト入力エリアへ以下のように指定します。
  • 右側ペインでマージする場合(起動時自動マージしたくない場合は /ar を削除)
    C:\Program Files\WinMerge\WinMergeU.exe /e /ub /fr /ar /wl /wm /dl %bname /dm %tname /dr %yname  %base %theirs %mine /o %merged
  • 中央ペインでマージする場合(起動時自動マージしたくない場合は /am を削除)
    C:\Program Files\WinMerge\WinMergeU.exe /e /ub /fm /am /wl /wr /dl %tname /dm %bname /dr %yname  %theirs %base %mine /o %merged
  • 左側ペインでマージする場合(起動時自動マージしたくない場合は /al を削除)
    C:\Program Files\WinMerge\WinMergeU.exe /e /ub /fl /al /wm /wr /dl %yname /dm %tname /dr %bname  %mine %theirs %base /o %merged

TortoiseHG との連携例

3-wayマージツールに winmergeu を指定し、%userprofile%\mercurial.ini の [merge-tools] セクションへ以下のように追加します。
[merge-tools]
# 右側ペインでマージする場合(起動時自動マージしたくない場合は /ar を削除)
winmergeu.args =   /e /ub /fr /ar /wl /wm /dl base /dm other /dr local $base $other $local /o $output
# 中央ペインでマージする場合(起動時自動マージしたくない場合は /am を削除)
# winmergeu.args = /e /ub /fm /am /wl /wr /dl other /dm base /dr local $other $base $local /o $output
# 左側ペインでマージする場合(起動時自動マージしたくない場合は /al を削除)
# winmergeu.args = /e /ub /fl /al /wm /wr /dl local /dm other /dr base $local $others $base /o $output

SourceTree との連携例

[Tools]→[Options]→[Diff]タブ で [Merge Tool]を Custom にし、 [Diff Command]に

C:\Program Files\WinMerge\WinMergeU.exe
[Arguments]に
-e -ub -fr -ar -wl -wm -dl base -dm remote -dr local $BASE $REMOTE $LOCAL -o $MERGED

を指定します。(右側でマージする例)

2018/04/29 2.14.0-jp-152

  • 「比較するファイルまたはフォルダ」ウインドウに[設定]ボタンと[プロジェクト保存]ボタンを追加
  • ドロップダウンメニューのドットアイコンが正しく描画されない問題を修正
  • ファイル比較: 最後の差異ブロックかつ削除行(背景色が灰色の行)で文字を入力すると、ファイル保存時、改行文字が消えてしまう行が表れてしまうことがある問題を修正
  • ファイル比較: 最後の差異ブロックの削除行(背景色が灰色の行)を削除するとクラッシュすることがある問題を修正
  • ファイル比較: 比較前前処理プラグインで、差異が無視された行が無視された行として色図消されるようにした
  • プラグイン: PrediffLineFilter.sctプラグイン(ファイルを比較する前に指定したキーワードを別のキーワードに置き換えて差異を無視できるようにするプラグイン)を追加

2018/03/29 2.14.0-jp-151

  • ご連絡いただいた以下の問題を修正
    • フォルダ比較: ファイルをドラッグしてエディタにドロップした時、張り付けられたファイルのパス名の後ろにゴミが追加されることがあるGithub#75
  • パッチ生成: ファイル1,ファイル2の入力欄に手動で入力した場合、履歴に残らない問題を修正
  • ファイル比較: Ctrl++/Ctrl+-で拡大、縮小ができるようにした
  • フォルダ比較: フォルダ比較中に比較を一時停止/再開できるようにボタンを追加した
  • フォルダ比較: フォルダ比較レポートをクリップボードにコピーする場合、比較するフォルダ内に日本語などが含まれると文字化けしたものがクリップボードにコピーされている問題を修正
  • フォルダ比較: フォルダ比較後、ファイルの文字コードを外部のアプリケーションで変更した場合、そのファイルをフォルダ比較ウインドウから開くと文字化けする問題を修正
  • ファイル/フォルダ比較: Google Drive File Stream 上の.gdoc, .gslide, .gsheet ファイルを比較するとクラッシュする問題を修正。(比較はどうしてもできないようなのでクラッシュしないようにだけ対策)

2018/02/28 2.14.0-jp-148

  • ご連絡いただいた以下の問題を修正
    • フォルダ比較: 更新日時のフォルダ比較で,左右どちらかにしかないファイルが表示されない
    • ファイル比較: WindowsXP上でWinMergeを起動するとエラーメッセージが表示される問題を修正 Bitbucket#1
  • ファイル比較: &を含む文字列を検索して見つからなかった場合、メッセージボックスに表示される検索文字列の&が非表示となり、&の後ろの文字に下線が表示される問題を修正
  • ファイル比較: 正規表現の検索パターンに^ を使用して置換すると処理が終了しない問題を修正
  • ファイル比較: 逆方向検索で最終行に含まれる検索文字列が見つけられないことがある問題を修正
  • ファイル比較: 複数行テキスト選択して削除する際、最終行が削除行(背景色が灰色の行)だった場合、ファイル保存時、改行文字が消えてしまう問題を修正
  • ファイル比較: 右ペインで、移動ブロックにも拘わらず、移動ブロックとして表示されないことがある問題を修正
  • フォルダ比較: &を含むファイル名が存在する場合、HTML/XML形式でフォルダ比較レポートを生成すると、ファイル名に含まれる & が &に変換されない問題を修正
  • フォルダ比較: 比較時に何らかの問題で比較できなかったファイルがフォルダ比較結果に表示されない問題を修正
  • パッチ生成: コンテキストに数値を入力しても反映されない問題を修正
  • CompareMSExcelFiles.sct プラグイン: ヘッダとフッタを比較できるようにした。また設定画面でヘッダフッタを比較するか設定できるようにした。

2018/01/29 2.14.0-jp-145

  • VirusTotal チェック結果: 32bitインストーラ, 64bitインストーラ, 32bit-zip( CylanceでUnsafe とみなされています。), 64bit-zip
  • ご連絡いただいた以下の問題を修正
    • ファイル比較: HiDPI環境だとLocation PaneやDiff Paneのタイトルバーの幅、フォントサイズが小さすぎる GitHub#54
    • フォルダ比較: 3フォルダ比較時、3つのファイルの組の内1つだけ異なるファイルの表示/非表示ができるようにしてほしい。[表示]メニューに[3方向比較]メニューを追加しています
  • フォルダ比較: 3フォルダ比較時、フォルダ内の3つファイルの組の内2つが一致していれば、その旨を表示するようにした
  • フォルダ比較: 片方しか存在しないファイルがバイナリファイルにもかかわらずバイナリ列に*が表示されない問題を修正
  • CompareMSPowerPointFiles.sct プラグイン: テーブル内のテキストが展開されない問題を修正

2014~2017年までの変更履歴

2014年以前の変更履歴

WinMergeはGPL2です。

WinMerge日本語版に関する不具合連絡等は、こちらか、か、以下のメールフォームに記入するか、issueトラッカーへの登録をお願いします。