share
Stack OverflowBest Diff Tool?
[+456] [54] ila
[2008-08-15 19:24:20]
[ diff productivity software-tools ]
[ http://stackoverflow.com/questions/12625] [DELETED]

For all my present Diff / Merge needs I'm using Beyond Compare [1]; when I decided to buy a license for it I tried other similar tools, both payware and freeware.

Now BC is at version 3, and I think it's a great tool... but what is your experience in this field? Do you think there is something better? And what are the features you like best on your favorite Diff tool?

EDIT

I'm recollecting here a list of the tools mentioned in the answers below, in order of preferences (more or less), separating pay- from free- ware and indicating supported operating system. Hope this helps.

PAYWARE

FREEWARE

(4) these should really be divided into 2-way and 3-way diff tools, for somethings 2-way merge is not good enough - jk.
Consider adding a small note to distinguish the open source and the still free but closed source solutions. - Unode
Meld works on Windows too. Look here for instructions: live.gnome.org/Meld/Windows - Bojan
[+185] [2008-08-15 19:38:55] Terrapin [ACCEPTED]

I have used a few others and found that Beyond Compare [1] is quite good. I say stick with that. Just a note - this is payware, not free.

[1] http://www.scootersoftware.com/

(4) I'll actually copy source directories from my Linux machines to Windows just so I can use Beyond Compare on them. It's too bad there are no free alternatives that are as good, but BC is easily worth its price. - Kristopher Johnson
(14) Beyond Compare 3.0, supports Linux scootersoftware.com/download.php?zz=kb_linux - stukelly
(7) I'm tried a few, installed KDiff3 and Beyond Compare 3. After a few weeks I paid for 3 Beyond Compare 3 licenses, enough for our small team. You will not regret spending that $50. - Brian Boatright
(5) Go with Beyond Compare. It is a lot better than all others I've tried. - Kristof Neirynck
(14) Agreed. Beyond Compare may not be free, but it's not all that expensive either, and in terms of quality, there's just nothing else that ahem compares with it. - Mason Wheeler
I've compared quite a few, but nothing compares to Beyond Compare. - abrereton
I just installed Beyond Compare and it's really slick! - Joe Philllips
(1) it's more than just the best, it's the coolest and likely one of the lease expensive -- their SLA is that per-person, not per-system. Got 10 people using 200 different systems at home, on a laptop, etc? np... 10 licenses, and they do volume discounts also -- payware like this is software I enthusiastically support - Hardryv
The real question is not how much it costs. It's how much you lose by not using it! - Serge - appTranslator
And don't forget you can use Beyond Compare on OS X with Wine! - Brandon
Beyond Compare does not differentiate between text that is added or deleted. When I perform a diff, I want to know how the files are different and the most basic way to answer that question is to show what has been added and what has been deleted. Unless I'm missing something, I'm wondering how Beyond Compare users deal with that? - SFun28
1
[+125] [2008-08-15 19:31:41] Adam Lassek

I'm partial to WinMerge [1], which does everything I need. I've never used Beyond Compare so I can't speak to the difference in features between the two.

[1] http://winmerge.org/

(8) WinMerge is a nice diff tool, but it doesn't handle 3-way merges like many of the other tools. - Bert Huijben
(3) I would love to use WinMerge, but it doesn't support 3-way diffs. This makes it difficult to use with modern version control software like Subversion. - Trumpi
(3) WinMerge works well. Even when I had a licensed copy of Beyond Compare on my machine I set everything to WinMerge. - 280Z28
(1) I've used WinMerge, but still prefer BeyondCompare. In simple file to file comparison the two are very similar, but I still prefer the BeyondCompare interface. - smencer
(1) +1 vote for WinMerge. - Tiendq
2
[+55] [2008-08-15 19:42:09] David Locke

I use meld.

sudo apt-get install meld

(2) Meld (linux only) has a very nice graphical file compare. Check the website: meld.sourceforge.net - Bob Fanger
(3) IMO, really the best OpenSource tool. - e-satis
It may be the best OpenSource tool.... but it is hard to compare to Beyond Compare. - Adi Roiban
I've always liked meld and P4Merge is the only close comparison that I can find in the Windows world. I hope they meld devs start supporting Windows. - jpierson
You can use meld on Windows. You just have to install Python and Python GTK. - Jim Clay
Here is a blog article on how to use Meld: wigwag.com/devblog/merging-source-code-with-meld - EdH
Meld is also available on the Mac via MacPorts. - Paul Legato
3
[+48] [2008-08-15 19:42:27] travis

I second the WinMerge [1] recommendation, it handles file/folder diffing and merging greatly. There are handy filters built in as well to block out source control files and stuff like that. Plus it's free! Here's the list of features from the site:

  • Visual differencing and merging of text files
  • Flexible editor with syntax highlighting, line numbers and word-wrap
  • Handles DOS, UNIX and MAC text file formats
  • Unicode support
  • Difference pane shows current difference in two vertical panes
  • Location pane shows map of files compared
  • Highlights differences inside lines in file compare
  • Regular Expression based file filters in directory compare allow excluding and including items
  • Moved lines detection in file compare
  • Creates patch files
  • Resolve conflict files
  • Shell Integration (supports 64-bit Windows versions), including an option to easily select two items [2] (if enabled in its settings)
  • Rudimentary Visual SourceSafe and Rational ClearCase integration
  • Archive file support using 7-Zip
  • Plugin support
  • Localizable interface
  • Online manual and installed HTML Help manual
[1] http://winmerge.org/
[2] http://winmerge.org/docs/tour/#d0e52

4
[+43] [2008-08-15 19:28:56] denis phillips

Diff Merge from SourceGear is free and good: http://www.sourcegear.com/diffmerge/index.html


I've been using this lately, and it seems to behave incorrectly during merges - it looks like it always gives preference to my version of the file, so other people's edits are lost (if I don't manually catch them, that is). - Johan
(3) No line wrapping, so it fails on any kind of tex editing. - mmr
I currently use DiffMerge too, but it's little out dated now and it doesn't have syntax highlight like WinMerge. - Tiendq
5
[+37] [2008-08-15 20:34:36] nsanders

Vimdiff.

It's part of the vim distribution. Interactive, syntax-highlighting diff with the full text editing power of vim. It uses folding ("zc" to close a fold, "zo" to open one) to hide matching parts.


Agreed. And, since it's really part of (g)vim, you can diff any two buffers you happen to have open in an existing vim session by executing 'diffthis' in each one. Handy. - overthink
I would say "the best", but definitly a must know since it's priceless on the command line. - e-satis
Although it's handy to have on-hand in Vim, I do find that it's one of the stupidest diff engines I've used... - Ipsquiggle
meld fails with two files that are almost identical, had to use vimdiff then. Noticed also some other oddities with meld so vimdiff good backup engine and small. - hhh
anyone know how to get each window of the same size? Anyone, a bit cumbersome but if you wondered how to resize windows so: ^W [numb] <OR> where <OR> means < or >. - hhh
To top it off, Since version 7.3, Vim supports generating HTML output of the diff view (ie., HTML output would contain the 2 or 3 diff windows side by side). - haridsv
@overthink right, the convenience of quickly creating two side by side buffers and copy pasting stuff into them to compare is fantastic. - haridsv
@lpsquiggle vimdiff uses your command-line diff tool to do the actual "diffing", so if the diffs seem bad to you you might want to look into what your command-line diff is doing. I agree that the intra-line diffing is pretty simplistic (it basically highlights the entire line minus the common prefix and common suffix as having changed), but that's rarely been an issue for me in practice. - Laurence Gonsalves
@hhh ^W = resizes your windows to be the same size. - Laurence Gonsalves
My favorite thing about vimdiff (and gvimdiff, which I actually use more) is that all of the navigation features of vim I'm used to are still there. How many diff-only programs support even basic navigation things like setting marks or regex searches? The ability to edit is also great. One of the last things I do to a change to get it ready to commit is I look at it with gvimdiff and make any minor tweaks. eg: Did I leave in some cruft from when I was figuring stuff out? Did I forget to delete a completed TODO comment? Being able to make these changes from within my diff tool is invaluable. - Laurence Gonsalves
6
[+35] [2008-09-15 20:25:58] Andy Stevenson

By far, BeyondCompare [1] is the best diff/merge tool that I have ever used.

  • We evaluated both BeyondCompare and Araxis for integration into clearcase, and after extensive testing with complicated deliveries BeyondCompare came out on top because of its solid handling of complex automatic merges. It happens to be much cheaper as well.
  • I use the Explorer context menu integration all the time on Windows (32-bit and 64-bit)
  • It runs on both Windows and Linux
  • Love the free trial period.. finally a product that is "30 days of use" instead of "30 days since I installed and forgot about it".
    • Excellent discounts if you purchase in bulk
  • Powerful directory comparisons
    • Compare a directory to a .zip file
    • Compare a directory to an FTP site
  • 3-way Merge, inline editing, syntax highlighting
  • compare images, Source Code, binary files, mp3 metadata, ...
  • can save "sessions".. for instance: compare changes in the last 60 days in "My Documents" to an folder on an external hard drive
  • Good source control integration
    • When you diff with a directory that's configured under source control, it will prompt you to automatically check out the files you're trying to overwrite!
    • Can be configured to handle the silent merges for clearcase (probabaly other tools too)
  • Supports input/output filters, for instance XMLTidy/HTMLTidy
[1] http://www.scootersoftware.com

I have used WinMerge a lot and Beyond Compare a little bit. Some features in WinMerge that I miss (perhaps just have not found) in Beyond Compare are: * moved block detection (that some text has just moved, not displayed as deleted and added) * WinMerge has better syntax highlighting (for C# at least) But I like the "ignore unimportant differences" option in Beyond Compare - Klas Mellbourn
7
[+28] [2008-09-14 15:08:31] Trumpi

I vote for KDiff3 [1]. It supports 3-way merging, which is great for working with copy-edit-merge version control systems like Subversion. It also allows editing in the results pane.

The only other diff tool I know that supports 3-way merging is diffmerge [2].

Winmerge [3] does not support 3-way merging, so it is not good enough for me.

[1] http://kdiff3.sf.net/
[2] http://www.sourcegear.com/diffmerge/index.html
[3] http://winmerge.org/

(3) I agree, 3-way merge is important. KDiff3 also integrates nicely with clearcase. - hlovdal
And unlike WinMerge, KDiff outputs are actually readable. - analytik
The Professional version of Beyond Compare also supports 3-way merge so it's not just diffmerge. Ref: scootersoftware.com/moreinfo.php?zz=moreinfo_merge - John K
(1) Informational : Meld supports 3-way merge too ;) - Shadok
(2) kDiff3 has a killer feature under windows : ability to select a file/folder with right-click, then select the other one and right-click "diff with previously memorized". This removes the hassle of file selecting. - Offirmo
8
[+26] [2009-07-18 02:36:36] RandomNickName42

Beyond Compare? That's so 80's...

Check out, history flow [1], now you're talking diff, over an infinite set of changes. Download on IBM.com. [2]

There is even more, a subversion plugin [3] and a blog post on the API [4] history flow uses.

alt text alt text

It's the closet thing that you can get (yes free code available) that even BEGINS to be in the same ballpark as the visualization guru, Ben Fry, had developed the revisionist [5]:

alt text

While it's obvious that the code in a software project changes over time, less obvious is the nature of how the code how individual changes have taken place in a broader context. Projects are typically structured as a collection of files that are added, removed, and reorganized throughout the course of development. The contents of the individual files are modified, line by line or in large pieces for every fix and feature.

the Revisionist, de facto, more than beyond comparison, it's beyond reproach.

[1] http://www.research.ibm.com/visual/projects/history_flow/index.htm
[2] http://www.alphaworks.ibm.com/tech/historyflow/download
[3] https://github.com/richardfearn/historyflow-subversion
[4] http://richardfearn.wordpress.com/2006/09/02/history-flow-api/
[5] http://benfry.com/revisionist/

This tool is different. Thank you for the contribution! - John
How would either system deal with representing distributed version control? - mavnn
(8) +1 for helping me find a weird new tool - jcollum
ok i'm missing the place where you download this... is it just a personal project for him? - jcollum
(5) @DMan: how about you assume I've seen this "internet" thing before and not be rude? I went to the links you provided and can't find anything that looks like software I can download. There's plenty of links to news and information about the project, but no actual software to download. - jcollum
cannot find source code, not good thing. Tastes too much marketing-pling-pling, not sure yet, but you can make such trees with gitk such as here [1]. Is the estetic value here the new thing? No, it may be more usable, researching, or just reinventing the wheel. [1] d.spearce.org/2007/07/wide-gitk.gif - hhh
(2) Dude. Vaporware? Really? - Dan Esparza
(1) A download link for history flow here: alphaworks.ibm.com/tech/historyflow/download But the licence is pretty bad IMHO: tinyurl.com/5to84xb. The concept is good but the code seems a bit old, 2005 :/ - Shadok
That project looks painfully familiar, I think maybe her and I were married once-upon-a-time at a former employer... - Hardryv
9
[+23] [2008-08-15 20:55:55] Grzegorz Gierlik

The best tool which I saw and used is Araxis Merge [1]. It has a lot of useful functions, including:

  • Auto resolving of conflicts after merge.
  • Horizontal and vertical two and three-way comparison.
  • Strong edition features (move, delete, add before/after line/block, in-place editing).
[1] http://www.araxis.com/merge/index.html

+1 for Araxis, though BeyondCompare is quite good. I tend to prefer Araxis's technique of drawing connector lines for comparing code, instead of padding missing space, like what WinDiff and BeyondCompare do, but then, that technique can be quite handy when comparing Data dumps, which I do less often. - drventure
10
[+19] [2008-09-14 13:27:34] Prakash

Araxis Merge

is the best i would say. It has amazing reporting options which would come very handy..

Also heres how the 3 way comparison look like


I tryed it, it annoyed me and lied to me. So I dropped it. Some people here swear by it ( it does look good ), others swear at it. - richard
11
[+12] [2008-08-15 19:29:01] urini

We use Perforce for source control at work, and now Perforce have released their merge tool as a free stand alone merge tool. I think it's pretty good, plus, it integrates well with Perforce server.

http://www.perforce.com/perforce/products/merge.html


12
[+10] [2008-08-15 20:51:18] Ran Biron

I use perforce merge [1] for single-file source merges and araxis merge [2] for folder-to-folder compare.

I think perforce is superior for single file - I really like it's 4-way merge screen (source control branch tip, local version, common ancestor from source control and target) and it's color/shape-coding. Also, it's automatic merge (suggested target) is very smart and suitable for Java.

Araxis merge has the unique capability to compare an entire folder tree, drilling down to file-to-file compare in a click. I find this useful in version compare situations when I quickly need to assess the amount of changes or track a specific change.

[1] http://www.perforce.com/perforce/products/merge.html
[2] http://www.araxis.com/merge/index.html

Araxis is really the best. You can even generate html reports of the diff. Its really amazing.. - Prakash
The folder compare ability isn't unique by a long shot - both KDiff3 and SourceGear DiffMerge allows that. - Johan
P4Merge also does folder compare, as well as image diff. - JasonMArcher
13
[+9] [2008-09-19 17:28:53] Trey Jackson

ediff - bundled with Emacs

It handles pair-wise diffing, file merging, directory diffing/merging. It can apply mutli-file patches, and it groks version control. Plus, you get all the features of Emacs: .zip/.gz/.tar support, syntax highlighting, ftp/ssh support, unicode, etc. etc.


14
[+8] [2008-10-04 15:56:26] Miquella

I think Kompare has the best interface of any diff tool I have even seen, I just wish I could find something like it in Windows.

http://www.caffeinated.me.uk/kompare/


A cool rare feature in Kompare is that it can parse a diff and visualize it. Very handy for plumbing, e.g. svn diff | kompare -. - Beni Cherniavsky-Paskin
15
[+8] [2008-08-15 20:26:01] Jeff Winkworth

I use the Compare plugin for Notepad++ [1]; its built right into your editor. While it doesn't compare directories or anything "advanced," it does a great job at file-to-file comparison. And it's free.

[1] http://notepad-plus.sourceforge.net/

16
[+5] [2010-06-07 06:46:06] JackD

I use CodeCompare (http://www.devart.com/codecompare/) for C# code comparing. It is very useful - product is integrated to the Visual Studio and I can make changes with the help of the Visual Studio editor.


Since I work mostly with C# code, I'll try it. Thanks. - Tiendq
17
[+4] [2009-08-14 08:11:16] romaintaz

For simple comparisons, I use PsPad [1], which is my default text editor.

It is quite basic, as it only displays added, removed of modified lines, as shown below:

alt text

However, PsPad is a great text editor and free. So I think it deserves to be listed in this post...

[1] http://www.pspad.com

18
[+4] [2008-09-03 23:54:03] Graphain

I like the merge that is included in Tortoise SVN


If you like Tortoise diff, try WinMerge, it integrates with Tortoise and is even better. - Roger Nelson
(4) funny, i can't stand the merge tool in tortoise. - Matt Briggs
I've never used the merging part of the merge tool, but for diffs I quite like it. - Mark Ransom
19
[+4] [2008-09-15 23:48:57] Ausmith1

I've tried a bunch of the other diff tools out there and I still keep coming back to Beyond Compare. I haven't tried v3 of Beyond Compare yet though...


20
[+3] [2008-09-21 07:52:48] Mitch Wheat

Would agree with the top 3:

  • Beyond Compare (if you have money to spend)

Otherwise:

  • WinMerge (free)

  • Diff Merge from SourceGear (free)


21
[+3] [2009-01-07 22:28:30] community_owned

Diffuse (http://diffuse.sourceforge.net/) is good cross-platform diff/merge tool. It's features include:

  • ability to compare and merge an arbitrary number of files side-by-side (n-way merges)
  • line matching can be manually corrected by the user
  • ability to directly edit files
  • syntax highlighting
  • Bazaar, CVS, Darcs, Git, Mercurial, Monotone, Subversion, and SVK support
  • support for UTF-8 encoded unicode
  • unlimited undo
  • easy keyboard navigation

22
[+3] [2008-09-28 21:12:21] d2kagw

Beyond Compare for Windows is a must - in Mac land there aren't many to choose from (which is a pitty) Changes isn't too bad, but pales in comparison to a full featured tool like Beyond Compare.


I find Deltawalker for Mac (also runs on Windows/Linux) to a fairly good BC replacement. - Lars Tackmann
23
[+3] [2009-05-12 23:59:13] DJ.

Beyond compare is an excellent tool. The only downside is it is payware. Wikipedia has a great chart comparing all the features amongst the various programs even some not listed in the question. link text [1]

[1] http://en.wikipedia.org/wiki/Comparison%5Fof%5Ffile%5Fcomparison%5Ftools

I use Beyond Compare for some time now and it was the best diff tool I've ever used! - Vargas
Like the link post! - Chris Aldrich
24
[+3] [2008-09-05 20:20:09] shmuelp

I'd second the recommendation of (g)vimdiff [1]. Often its very useful to have a powerful text editor, complete with syntax highlighting while comparing (and merging) files.

For situations where a tool (e.g. CVS or git) has already run a merge and left conflicts in a file, xxdiff [2] has a really neat mode where it can separate the file and show it in a side-by-side diff.

[1] http://www.vim.org/
[2] http://furius.ca/xxdiff/

Quick vim/shell expansion Combo: "vimdiff file{,.1,.2,.3,.4}" AD INFINITUM ! Vim is such a great little tool ! No troll intended, there are others like it , I know :) - Shadok
25
[+3] [2008-08-15 19:35:39] Bruce Alderman

I've had good luck with ExamDiff [1]; it's free and does what I need it to do.

[1] http://www.prestosoft.com/ps.asp?page=edp_examdiff

26
[+3] [2010-04-23 03:15:45] user323840

please try Compare++ [1]. The diff tool is a visual specialized tool for source code file comparison, merging and folder synchronization.

  • Language-aware structured comparison for C/C++, Java, C#, Javascript, CSS, ...;
  • Ignore comment, pure formatted, white-space and case changes;
  • Unique ability to align moved sections such as C++ function, Java namespace, C# method, CSS selector, ...
  • Compare two folders at high speed and display results side by side
  • Easily integrate into SCM such as SVN, Git, Perforce, Microsoft TFS, SourceSafe, CVS, ...
  • Generate snapshot, HTML or text report
  • Automatically detect files and folders changes outside

alt Compare file alt Compare folder

[1] http://www.coodesoft.com

(3) You should probably add that you are the developer of this program. - DMan
27
[+3] [2009-06-17 10:00:06] Ira Baxter

Most diff tools report just text differences at the line level.

A tool that compares source code structures, regardless of whitespace formatting (including line breaks) and reports reports changes in terms of structures inserted, deleted, moved, replaced, or changed by consistent identifier renaming gives better information to the programmer.

Our Smart Differencer [1] does this for many languages, including Java, C#, Javascript and COBOL.

EDIT Feb 2010: Now does C++, PHP and XML

EDIT Aug 2010: Now does Python, EGL and Natural

EDIT Nov 2010: Now does VB6, VBScript, VB.net

EDIT Aug 2011: Does C++11, Java 1.6/Java 1.7

[1] http://www.semanticdesigns.com/Products/SmartDifferencer/index.html

28
[+2] [2011-10-04 19:50:15] Blazes

Mergely [1] is an online merge tool in the vein of Araxis Merge that can be handy when you want to diff something quick, but it also allows you to share differences and link to them on blogs or emails... and it's totally free.

enter image description here

[1] http://www.mergely.com

29
[+2] [2012-01-04 02:07:06] Yin Wang

enter image description here

You might be interested in the open-source structural comparison tool I have been developing.

http://www.cs.indiana.edu/~yw21/ydiff.html

It experimentally supports C++, JavaScript, Python, Scheme, Emacs Lisp (and other S-expression based languages). It actually parses the programs and compare their parse trees, with semantics-awareness. The parsers are built using a parser combinator library which eases the job by quite a bit. It can also detect and trace refactorization. You can get a feel of it by playing with interactive demos:

Python: http://www.cs.indiana.edu/~yw21/demos/demo1-demo2.html

JavaScript: http://www.cs.indiana.edu/~yw21/demos/nav-nav-div.html

C++: http://www.cs.indiana.edu/~yw21/demos/d8-3404-d8-8424.html

Emacs Lisp: http://www.cs.indiana.edu/~yw21/demos/paredit20-paredit22.html

Scheme: http://www.cs.indiana.edu/~yw21/demos/mk-mk-c.html

I have a blog post about its design here:

http://yinwang0.wordpress.com/2012/01/03/ydiff

It is open source. You can get its code from GitHub:

http://github.com/yinwang0/ydiff

I'm currently not very active developing it (because of coursework and research), but I would continue if there are lots of interest in it. Also I welcome people to contribute to its development.


30
[+2] [2008-10-05 12:08:23] naltatis

On Mac OS X you have Apples FileMerge [1] which comes with the Developer Tools.

[1] http://www.apfelwiki.de/Main/FileMerge

31
[+2] [2008-10-21 16:28:19] Michael McCarty

A couple more for the list.

Changes for OSX as payware (http://www.changesapp.com)

tkdiff is free under the GPL (http://tkdiff.sourceforge.net)


32
[+1] [2009-05-12 23:32:09] Dan Esparza

I really like the free and excellent Perforce Merge tool [1] (also known as p4merge).

[1] http://www.perforce.com/perforce/downloads/windowslist.html#ntx86

33
[+1] [2008-09-28 21:09:49] ila

Even if I did not try these, I'm adding for completeness also:


34
[+1] [2010-07-22 20:13:01] pablo

Take a look at the Xdiff in Plastic [1]. Together with the typical diff stuff, it can also track moved code fragments even when they've been modified after the move (some sort of refactor-aware diff tool)

[1] http://codicesoftware.blogspot.com/2010/07/move-support-in-diff.html

Looks nice but they have secret product pricing. - danio
35
[+1] [2010-08-11 08:14:25] rlovtang

I really like the diff tool in IntelliJ IDEA [1]. Wish they had a standalone version as well.

[1] http://www.jetbrains.com/idea/features/local_history.html

36
[+1] [2011-02-13 18:41:16] Patrick from NDepend team

For .NET developers, there is an original code diff tool : NDepend [1]

Basically NDepend can analyze a code base and create and then persist a snapshot of the code. 2 such snapshots, taken at 2 different times, can be compared. Then, NDepend lets ask for new methods/classes, removed methods/classes, methods/classes where code was changed... as easily as writing:

SELECT METHODS WHERE CodeWasChanged

Also, NDepend can plug to any text diff tool listed here. The user can then compare the 2 versions of the changed method or class. Another cool capability, is to plug NDepend to RedGate Reflector [2], decompile the 2 versions of the method/class and compare these 2 versions with a text diff tool. More information here: Advanced Code Diff [3]

enter image description here enter image description here

[1] http://www.NDepend.com
[2] http://www.red-gate.com/products/dotnet-development/reflector/
[3] http://www.ndepend.com/Doc_VS_Diff.aspx

37
[+1] [2011-06-12 22:35:46] Neutrino

I've recently tried most of the diff tools mentioned here and it appears to me that most of them (even the expensive ones) lack one or both of two key features.

  1. Separate output pane for merging. If you have two versions of a source file where separate developers have trampled on a complicated algorithm, there is imo no substitute for having a separate editable output view so that you can retain a view of each original file while resolving the conflict. Unless I missed it Araxis Merge does not have this feature. Not that it matters to me, Araxis Merge now uses an Office 2005 ribbon style UI so that 1/4 of the screen is taken up by a shifting sea of widgets, and there's no way to revert to an alternate UI, and I'm a ludite so I just can't be dealing with that.

  2. Take both. There should be a trivial means by which you can take both conflicting changes in whichever order you like.

Most of the other merge tools lacked either one or both of these features. The one which had them both was KDiff3, and with its intuitive support for directory merging and sync this is imo the clear winner, and the fact that it's free and open source doesn't hurt either.

Beyond Compare also had both features but I found the UI of KDiff to be cleaner and more to my liking.

Now if anyone knows of a diff tool that has both of the features mentioned above but which can also do a merge between two files saving the results back to both files, then you will have my everlasting gratitude. Failing that I'll just pester the KDiff3 devs for it to be added. I want that feature so that I can handle directory synchronization in the case where files have conflicting changes.


By your description I'm not positive if it's what you're describing, but at the bottom of Beyond Compare in the default configuration once you get your files side-by-side lines with only white-space differences are in blue, and lines with hard edits are in red -- then at the bottom of the windows in the default configuration is an over-under scrollable edition of the 'current line' in a char-by-char format so you can see what precise differences exist, if any. absolutely /love BC... it even compares image files - Hardryv
38
[+1] [2011-09-26 12:36:08] JP Hellemons

I used Compare IT, it's payware but you can evaluate it for 30 days. Download it from: http://www.grigsoft.com/wincmp3.htm

Compare it 4.0

It's not that expensive either. I like the small toolbar.

http://www.grigsoft.com/register.htm


39
[+1] [2009-08-02 07:26:44] KIV

I personally use Delta Walker [1]. It is available on Windows/OS X/Linux, works as good as Araxis, but is much cheaper.

[1] http://www.deltopia.com/

40
[0] [2010-06-18 02:41:49] graveDust

what about good old 'diff' command? Is good writing diff scripts.


For small changes it's good. However, it's often nice to be able to edit the files from the diff view, and also visual tools are good for giving more context (e.g. during a code review when you want to talk around the change). - danio
41
[0] [2011-01-31 21:15:14] austincheney

There is http://prettydiff.com/ for web stuff. It is an algorithmic diff program that can compare minified code to development code.


42
[0] [2011-11-09 03:12:38] Anil Namde

KDiff [1] we are using it and served well so far ...

[1] http://kdiff3.sourceforge.net/

43
[0] [2011-11-15 17:41:46] HernĂ¡n Eche

CSDiff [1] is not the Best but wasn't mentioned and it's quite minimalist, free and fast

[1] http://www.componentsoftware.com/products/csdiff/

44
[0] [2009-01-07 22:36:21] Scott W

I like SmartSynchronize [1]. It is effectively the built-in compare/merge tool for SmartCVS [2] (and I assume SmartSVN [3]), but separated out for use on the file system. Written in Java, so runs on most Java-supporting platforms.

[1] http://www.syntevo.com/smartsynchronize/index.html
[2] http://www.syntevo.com/smartcvs/index.html
[3] http://www.syntevo.com/smartsvn/index.html

45
[0] [2009-06-11 13:44:37] community_owned

SourceGear's Diffmerge also has folder diffing. Using the tool with Mercurial :-)


46
[0] [2008-10-27 09:22:45] Schalk Versteeg
  1. Winmerge
  2. notepad++ merge plugin (usually use this as a quick way if I do have both files open but for serious merging I'll go to no. 1)

I don't know Beyond Compare or Araxis thus can't comment on them.


47
[0] [2008-11-02 13:46:12] mkoeller

Another vote from me for WinMerge [1]. I've been using this tool for some years now and with a recent new project I discovered just another nice feature:

The installer integrates nicely with a local clearcase client installation.

[1] http://www.winmerge.org/

48
[0] [2008-12-11 16:09:00] Michael Paulukonis

WinMerge and eDiff; I use WinMerge when I'm comparing entire folders, but eDiff for 2 or 3 files, or snippet comparison.


49
[0] [2008-09-22 03:29:55] scottb2

After trying a couple other diff programs for Windows, I stuck with Araxis Merge. The standard version does about everything I'd want done with 2-way diffing. Also, the immediate impression it makes is very good; it doesn't overwhelm you with colored lines. In other words, it tells you what you need to know without confusion. It is also supported very well.


50
[0] [2008-09-15 23:57:15] community_owned

I think it depends on what you're trying to compare and why. I use WinMerge most of the time. Sometimes I use DiffMerge. Sometimes I use Tiny Hexer.


51
[0] [2008-08-15 20:10:04] BCS

I use winmerge. One thing I /would/ like to see in it would be the ability to force a match (this line on the left is that line on the right)


Beyond Compare does this. - fatcat1111
52
[0] [2008-09-15 20:31:48] community_owned

Another vote for Araxis Merge. The Standard Edition has covered 95% of the diff/merge tasks that I've encountered. It is good enough that I purchased a personal copy for work.


53
[-1] [2009-08-02 05:26:45] community_owned

WinMerge is out because it doesn't do side-by-side comparisons of FOLDERS/FOLDER TREES.

I currently use BC2.x & love it.

Also, it is licensed for use BY ME on unlimited PCs, and can be configured as a PORTABLE APP.

I never heard of Araxis, but it looks good, and it does 3-way merges (BC2 doesn't, I don't know if BC3 does). But Araxis is MUCH more expensive, and is licensed per computer (thus I doubt it can be configured to be portable).


54