KDiff3
KDiff3 is a diff and merge program that - compares or merges two or three text input files or directories, - shows the differences line by line and character by character (!), - provides an automatic merge-facility and - an integrated editor for comfortable solving of merge-conflicts, - supports Unicode, UTF-8 and other codecs, autodetection via byte-order-mark "BOM" - supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.), - Printing of differences, - Manual alignment of lines, - Automatic merging of version control history ($Log$), - and has an intuitive graphical user interface. - Windows-Explorer integration Diff-Ext-for-KDiff3 - shell extension included in installer (originally by Sergey Zorin: see also Diff Ext) - KDE-Konqueror/Dolphin service menu plugin - Simplified integration with IBM-Rational-Clearcase for Windows

Pros
- Supports 3 way merges
- Can compare directories
- Supports editing files directly
- Diff by character not by lines
- Preprocessing before calculating differences
- Context menu shortcut
Cons
- Problems when files have different number of lines
- Slow for large files
- Confusing GUI