最高の3者間マージツールは何ですか?[閉まっている]


272

Subversion、Git、Mercurialなどは、3者間マージ(mine、theirs、および「base」リビジョンの組み合わせ)をサポートし、競合を解決するためのグラフィカルツールをサポートしています。

どのツールを使用していますか?Windows、Mac OS X、Linux、無料、商用を問わず、あなたはそれに名前を付けます。

会話を始めるために、私が使用または聞いたことのあるものをいくつか示します。

(これはBest Diff Toolのようなものだと認識していますが、3者間マージツールに明示的に焦点を合わせている点が異なります。たとえば、WinMergeはリストに含まれていません。)



4
実際には、WinMergeはVCSツールでそれを使用して3つの方法で比較します。コマンドラインに引数として3つのファイル(左、右、結果)を渡すだけで、ジョブが実行されます。
ジルビナス2014

3
主観的な要因に依存するため、最適なマージツールは何かを言うのは困難です。ただし、違いを示す機能を探している場合は、semanticmerge.comを
DanielPeñalba2014年

28
この質問は建設的でないとどのように締めくくることができますか?これは明らかに多くの人々はそれが考える、182 upvotes、123星と11点の答えを持っている建設。
HelloGoodbye 2016

3
@Shuklaswagそれは私の質問とどのように関係していますか?なぜ「建設的」ではないのかと思った。
HelloGoodbye 2017

回答:


167

KDiff3 オープンソース、クロスプラットフォーム

LinuxとWindowsで同じインターフェース、競合を解決するための非常にスマートなアルゴリズム、競合を自動的に解決するための正規表現、ClearCase、SVN、Git、MS Visual Studioとの統合、編集可能なマージファイル、ディレクトリの比較

そのキーボードナビゲーションはすばらしいです:差分をナビゲートするctrl-矢印、マージを行うにはctrl-1、2、3。

また、https://stackoverflow.com/a/2434482/42473も参照してください。

ここに画像の説明を入力してください


10
KDiff3のその他の利点:LinuxとWindowsの同じインターフェース、競合を解決するための非常にスマートなアルゴリズム、競合を自動的に解決するための正規表現、ClearCase、SVNおよびGitとの統合、編集可能なマージファイル、ディレクトリの比較。
2013年

3
@ThomasSそれは真実ではありません。例については他のkdiff3回答を参照してください。kdiff3幸いにも、ディレクトリツリー全体をdiffしてマージし、長年行ってきました!一部のツール(などgit)はファイルごとにのみ起動できますが、他のツール(Mercurialなど)を使用すると、リポジトリ全体を3者間で差分/マージできます。
マークブース

2
ローカルと他の変更が追加された行の数で異なる場合、KDiff3はひどいです。ローカルで行A、B、Cを追加したが、他の変更ではAとCしか追加しなかった場合、KDiff3はAが追加されたことを確認し、BがCと競合していることを検出して、とにかくCを追加します。
Neil

3
2016年にこの回答について誰か意見はありますか?
Shadoninja

4
2014年以降はサポートされていません
Ruslan K.

106

P4mergeについては、別のブログ記事で聞いたのでチェックしててください。

ここに画像の説明を入力してください

非常に滑らかなインターフェース、無料!私は忠実なAraxis Mergeユーザーでしたが、これは無料で素晴らしいので、ぜひチェックしてみてください。


11
Windows、Mac、Linux、FreeBSD、Solaris 10で利用可能
Grant Limberg 08

36
@Art:もちろん、P4Mergeでマージ結果を編集できます。いつもやってるよ!
Sklivvz、

9
p4mergeも企業にとって「無料」ではありません。ライセンスは商用利用に限定されています。
DH4 2013年

21
@ DH4私は公式のPERFORCEサポートからメールを受信しました。P4Mergeは商用利用無料です(私はMSで働いています。それ以上のエンタープライズはありません;))
Ohad Schneider 14

4
P4mergeではフォルダー比較はサポートされていません。それはP4Mergeに本当に素晴らしい追加だったでしょう。
RuntimeException

95

Beyond Compare 3 Pro3者間マージをサポートしており、非常に印象的なマージツールです。これは商用(ただし、価値のあるIMHO)で、Windows、Linux、およびMac OS Xで使用できます。

コメントで指摘されているように、それも安価です。

ここに画像の説明を入力してください

注:マージセットがない場合、つまり宛先ファイルにあるマージマーカーの場合、Beyond Compareは3者間ファイル比較/編集を提供しません。Beyond Compare は、その機能は彼らのリストにあると言っています

注:3者間マージは、Beyond Compare 3のみのProエディションの機能です。


16
+1 Beyond Compareは、特に他の機能を検討する場合に、価格に見合う価値があります。
jamiei 2009年

2
良いですが、フォルダの選択はサポートされていません
Michael Fitzpatrick

9
マイケル、どういう意味かわかりません。:比較を超えて、フォルダを差分のための大きなサポートがあるscootersoftware.com/moreinfo.phpを
Bruce Christensen、

4
それは彼らのウェブサイトに明確に示されています -ステートプロバージョンへの更新された回答は3ウェイマージの要件です
ジョシュア・マッキノン2013年

2
Compare 4 Proを超えて、Folder Mergeのサポートが追加されました。
クリスケネディ

75

Meld Diff Viewer

Meldでの作業は良い経験しかありません。ブランチ間で複雑なコードマージを行う必要がある場合に使用します。使い方は簡単で、インターフェースもすっきりしています。

  • オープンソース
  • Linux、Windows、MacOSをサポート
  • 複数ファイルの差分
  • 3者間比較のサポート

Ubuntuでは、インストールは次のように簡単です。 sudo apt-get install meld

ここに画像の説明を入力してください


3
+1 Meldは、洗練された、きれいな、「ちょうどいい」ソフトウェアです。
トレヴァーブランブル

15
メルドには欠陥があり、その視覚的な手がかりは誤解を招くものです。
aib

6
Meldはgitでも正しく動作しません。
11

65
Meldは、残念ながら、3者間マージツールではありません(ホームページに記載されていても)。3者間マージの場合は、4つのウィンドウ(ベースファイル)が必要です。しかし、私はメルドが大好きで、うまくいきます。
lzap

8
@lzap、実際にメルドした 3ウェイ、それが文書化されていないたと私は気づい月ほど前、彼らは完全に3方向マージを削除しました:is.gd/prKX5d古いバージョン十分に固執した場合、あなたがまだあります運も。
Magnus

45

vimdiff。それは素晴らしい。必要なのは幅3フィートの窓だけです。

ここに画像の説明を入力してください


11
「gvimdiff -O branch1.txt base.txt branch2.txt merge.txt」を実行できることを理解するためにしばらく時間をとり、ctrl + w Jを使用してマージバッファーを画面の下部に移動します。これはどのように使用するのですか?
Wim Coenen、

ほとんど、gvimではなくvimを使用します。
ポールベッキンガム

7
反対票を投じます、それは本当に衝突を解決しません、それはただの違いです。
piotr 2012

3
vimdiff今マージ3ウェイのための素敵なGitの取り扱いを持っている(つまり、4ペイン) - vim.wikia.com/wiki/...を
ソニア・ハミルトン

8
@piotr vimdiffは実際に競合を解決します。コマンド「diffg <bufferNum>」を使用して、下のペインにマージされたファイルを作成します。buttomマージペインはバッファ1で、その他は上部の2,3,4です。差分にジャンプするには、[cと] cを使用します。これは、debian wheezy 7.7の標準機能です。
ikky

37

Source Gear Diff Merge

クロスプラットフォームの真の3者間マージであり、商用または個人での使用は完全に無料です。

ここに画像の説明を入力してください


1
私は長年DiffMergeを使用しており、気に入っています。しかし、筆者がdiff-mergeツールを調べ、リストをDiffMergeとP4Mergeに絞り込んだこのブログ投稿を読みました。インターフェースが優れているという理由だけで、彼はP4Mergeを採用しました。今日P4Mergeを使い始めたばかりなので、同意する必要があります。特に、DiffMergeは変更をうまく表示しません-削除と挿入としてそれらを表示します。多くの変更が近接している場合、これは混乱を招く可能性があります。P4Mergeはそれをよりよく表示します。
Simon Tewsi、2012年

1
diffmergeは無料ではないようです。費用は$ 19です
erkfel 2013

3
@erkfel、それは不正解です。登録はオプションであり、ソフトウェアは無料で使用できます。「SourceGear DiffMergeは、受賞歴のあるファイルの差分およびマージツールであり、2007年からプロの開発者や愛好家を支援してきました。SourceGearDiffMergeは無料で使用が許可されています。ただし、DiffMergeを登録することにより、新製品の開発、メンテナンス、サポートへの資金提供を支援します。登録ユーザーに感謝し、追加登録を促進する方法として、4.2にいくつかの新機能を追加しました... "(プログラムテキスト)
Muhd

1
P4Merge(現在はgitでの比較とマージに使用しています)と比較して、DiffMergeで便利なのは、Windowsファイルエクスプローラーと統合されていることです。特に、あるフォルダ内のファイルを覚えてから、別のフォルダ内の別のファイルと比較することができます。これは月に1〜2回は便利です。2つのファイルを同じフォルダーに移動して比較する必要はありません(たとえば、SQLスクリプトがソース管理下にない場合)。
Simon Tewsi 2015

1
@SimonTewsi:P4Merge for Macでは、ファイルが同じフォルダーにある必要はありません。これにより、ファイルシステムを参照し、コンピューター上の任意の場所からベースファイル、最初のファイル、2番目のファイルを選択できます。
スティーブサミュエルズ2016年

32

Araxis Merge。商用ですが、それだけの価値があります... WindowsとMac OS Xで利用できます。

ここに画像の説明を入力してください


5
同意します、それは私が使用した中で最高です。
Dan Olson、

1
私の観察:5MB前後の大きなファイルを処理する場合は比較的遅いです。
ナガキラン

3
Araxisの+1。私が個人的に使用するために十分なお金を払うことをいとわない数少ないツールの1つ。他のすべてのものは雑然としていて、混乱していて、比較すると見劣りします(しゃれた意図)。
Dan Esparza、2011

8
Araxisを長期間使用した後、私の会社は次の理由でKDiff3に切り替えました:(1)Araxisでのマージがキャンセルされても、ファイルはTortoiseHgで解決済みとしてマークされます。(2)Araxisはベースリビジョンとマージ結果の混合を[Merge Result]ペインに表示しますが、これはしばしば混乱します。(3)TortoiseHgからKDiff3は、可能な場合、ユーザーの操作なしで自動的にマージされます。(4)KDiff3のマージアルゴリズムの方が優れているようです。ただし、比較ツールとして引き続き
Araxisを

2
他の回答のコメントで述べたように、適切な3方向マージツールには、4つのパネル(ベース、ローカル、リモート、結果)があります。Araxisはベースと結果を膨張させ、問題を引き起こす可能性があります。
neonblitzer

27

Kdiff3の競合解決アルゴリズムは本当に印象的です。

subversionが競合を示している場合でも、Kdiff3はそれを自動的に解決します。同じインターフェイスを持つWindowsとLinuxのバージョンがあります。TortoiseやLinuxシェルと統合することが可能です。

それは私のお気に入りのオープンソースソフトウェアのリストです。任意のマシンにインストールする最初のツールの1つ。

これをSubversion、Git、Mercurial、およびClearCaseのデフォルトの差分ツールとして構成できます。また、ClearCaseのほぼすべての競合を解決します。Windowsでは、Windowsエクスプローラーとの統合が優れています。2つのファイルを選択して右クリックして比較するか、右クリックして「後で保存」してから、別のファイルを選択して比較します。

マージされたファイルは編集可能です。洗練されたキーボードショートカットがあります。

また、ディレクトリを比較してマージすることもできます。見る: Kdiff3ディレクトリの比較

高度な機能は、正規表現を使用して自動マージを定義することです。

私の唯一の不満は、お気に入りのディストリビューションリポジトリに存在しない場合、コンパイルが少し難しいことです。


3
マージアルゴリズムについて同意します。それは信じられないほど洗練されており、奇妙に、他のツールではできない方法で何をしたいのかを「知っている」ようです。それは定期的にdiff3とSubversion(blarg)を粉砕し、Gitマージにも役立ちます。
kevinarpe 2014

次に移動してa / b / cを選択するためのキーボードショートカットはどこにありますか?
mylord 2015年

@mylord:小さな自動進行遅延とショートカットCtrl-1 / 2/3を使用して、多くの競合に対してA / B / Cを選択します。
neves 2015

KDiff3に代わるものはありますか?それを
大いに

1
@ chrispepper1989、今日もGitでKDiff3を使用しています。KDiff3よりもはるかに優れた3ウェイマージアプリを見つけたことはありません。P4Mergeはよりモダンなインターフェイスを備えていますが、テストしたところ、マージされたファイルを編集できませんでした(今はできると思います)。
neves

13

エディフ大好きですGNU Emacsに組み込まれています

3方向の比較を行うには、ediff-files3(3つのファイルを選択する場合)またはediff-buffer3(既に開いている3つのバッファを選択する場合)を使用します。次のような画面が表示されます。

emacsでの3方向差分

単語の違いの強調表示に注意してください。

あなたがヒットすることができnたりpしながら、次/前の差分に行くためにab(左端1)バッファの領域をコピーしますB(中1)をバッファリングし、同様の他の2文字の組み合わせのためにするためにabcrb領域をバッファーbに復元します。ヒット?クイックヘルプ]メニューのため、あるいはEmacsでマージのdiff3に微細なマニュアルを読んで


6
私がエディフを愛しているのと同じくらい、私は上の2つのバッファしか表示しません... 3ウェイマージには3または4つのウィンドウがあるはずです:マージされる3つ(ローカル、リモート、およびそれらの共通の祖先ベース)と最終的なマージ出力。そこ(と呼ばれるediffで3ウェイマージように見えるediff-merge-with-ancestor)が、それは3つのペインまたは4を持っている場合、私はわからないんだけど、また上のスクリーンショットはそれを反映していません。
ShreevatsaR 2013

3方向の差分@ShreevatsaRを表示するように編集
ハンマーを外す

@unhammerありがとう、これはより良いですが、それでも3つのウィンドウしか表示されないので、それが真の3方向の差分(4つのウィンドウを持つことになります。スクリーンショットに表示されているのが3つのものがマージされている場合、出力はどこにありますか?
ShreevatsaR

1つ(または複数)のバッファーを破壊的に変更します。これabが、リージョンをバッファーaからバッファーbにコピーすることを述べた理由です。の4ウィンドウバージョンはediffまだないと思います。(emerge代わりに専用の出力バッファーを使用していることは知ってemerge-files-with-ancestorますが、祖先は表示せず、祖先と一致するバージョンを確認することで正しいバージョンを推測するためにのみ使用します。)
unhammer

11

超比較。これは非常に優れており、大きなファイル(1 GBを超える)を適切に処理し、Windows / Mac / Linuxで利用でき、商用ですが、価値があります。

WindowsでのUltraCompare Professionalのスクリーンショット


3ウェイマージをサポートするように設定する方法がわかりません...ベースファイルを中央に表示し、変更された2つのファイルを左右に表示できるので、ベースに基づいて両方のファイルの変更内容を確認できますファイルと2つの変更されたファイルのマージ結果が下部にありますか?私はUltraCompare 17.0を使用しています
Ricky

1
少しグーグルで見つけたこのultraedit.com/support/tutorials-power-tips/ultracompare/…-ステップ6の高度なマージでの3ウェイマージについて説明しています。
MrTelly

11

拡散は使いやすい3者間マージツールです。あなたが言及したすべてのプラットフォームとバージョン管理システムをサポートし、同時に4つ以上のファイルを比較できます。

ここに画像の説明を入力してください


2
また、同時にN個のファイルを比較することもできます!これは、多くの同種のアプリケーションからの設定ファイルを比較する必要がある場合に便利です。
Pius Raeder、2015年

私は4つ以上のファイル比較にDiffuseを使用しています
mohas


4

要約すると、ECMergeは商用製品ではありますが、すばらしい製品であることがわかりました。http://www.elliecomputing.com/products/merge_overview.asp

ここに画像の説明を入力してください

また、ウルトラコンペアは非常に優れているとMrTellyに同意します。優れた機能の1つは、RTFとWordのドキュメントを比較できることです。これは、営業担当者と一緒にプログラミングしてしまい、ドキュメントを正しく管理していない場合に便利です。


最初のリンクが機能していないため、500エラーが返されます。リソースが移動されている場合は、URLを調整してください。
Sergey P. aka azure

@ SergeyP.akaazure-申し訳ありません。私のブログは現存しないです-私は、リンクを削除した...
スティーブ・ミジリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.