tags:

views:

6804

answers:

8

I'm looking for a good free 3-way Merge/Diff tool for Windows.

I know of KDiff3. But I was looking for further recommendations.

+10  A: 

I've never used this but SourceGear DiffMerge is free.

It's not free, but I use Beyond Compare.

eed3si9n
This is what I use day to day.
Steven Robbins
Definitely recommend Beyond Compare.
nevets1219
+1  A: 

I always just merged one set of changes and then the other. I have never come across a situation where I had to look at all three at the same time. It probably takes more time this way but I rarely have the problem of merging three change sets.

Here is a wikipedia comparison of merge tools including information about three way merge.

Gerhard
Are you sure you are thinking about a three way merge?
Konstantin
Yes. What I am saying that two two way merges results in a 3 way merge.
Gerhard
You're not using the right source control (git) :)
Benjol
Conceptually, there is a 2-way diff (*old* vs. *new*) and a 3-way merge (*old* vs. *new1* vs. *new2*). A "2-way merge" means you ignore *old* and just 2-way diff *new1* vs. *new2*, manually picking the winner for every difference - it's less smart and requires more work.
Beni Cherniavsky-Paskin
+13  A: 

I use P4Merge that is free... http://www.perforce.com/perforce/products/merge.html

Jesper Palm
+5  A: 

TortoiseMerge is available either together with TortoiseSVN, but also as a standalone tool. Note: the TortoiseDiff.zip file also contains an image diff tool, not just TortoiseMerge.

Stefan
TortoiseMerge is a 2-way merge tool, so you can't compare base revision in trunk, revision y in branch, and revision y-1 in branch. Having revision y-1 allows you to prevent unwanted changes to merge into trunk. See http://stackoverflow.com/questions/326937/
eed3si9n
I think I know better that TortoiseMerge *is* a three way merge tool since I wrote it. You can very well compare three files, not just two.
Stefan
Looks to me that though TortoiseMerge may do three-way merge, you don't get to see the base file your self (http://tortoisesvn.net/docs/release/TortoiseMerge_en/help-onepage.html#tmerge-dug-dia-3pane)
Benjol
+3  A: 

Diffuse (http://diffuse.sourceforge.net/) is an easy to use free tool that supports 3-way merges.

+3  A: 

I think there is some confusion about 2-way and 3-way merging. Here is my understanding of the issue. There is a file say 'A' which was modified by two different users to have files 'B1' and 'B2'. If a tool compares just B1 and B2 to allow you to get a merged file 'C', its a 2-way merge tool. If a tool compares B1 and B2 with reference to A, its a 3-way merge tool. Generally, 3-way merge tools give a much better grasp of what has happened and are preferred.

Both Winmerge and the merge tool built into TortoiseSVN are 2-way merge tools.

Nikhil
My version of TortoiseSVN Merge has fields for "Base file", "Their file" and "My file". I have never used it, though, but are you sure it's not 3-way?
erikkallen
A: 

By the screen shots, TortoiseMerge is definitely NOT a 3-way merge tool. If it is, you would think some of the screen shots would show it.

HogCall
Sorry, could not figure out how to add my comment to the thread about TortoiseMerge.
HogCall
It also has 3-pane view: http://tortoisesvn.net/docs/release/TortoiseMerge_en/tmerge-dug.html#tmerge-dug-dia-3pane.But the important part in 3-way merging is that it *internally uses* the common original version to choose the right action for most differences; *showing* the original is less critical (though ocassianally clarifies things).
Beni Cherniavsky-Paskin
A: 

One that I liked, but which is not cheap, was Araxis Merge.

HogCall