This is not just a graphical version of the command line diff tool. Meld compares two or three files line by line. Or two or three folders file by file. In addition, Meld supports multiple version control systems such as Git or Subversion. This allows changes to be checked before a commit, with Meld displaying the versioning status of each file.
In folder view, Meld looks like a tidy file manager with two (or three) panels. Different file versions are color-coded, and missing files or subfolders are crossed out on the page where they are missing. Exactly what is displayed can be determined via the buttons “Identical”, “New” and “Modified” as well as via file filters.
In the file view, differences are also marked in color and can be quickly accessed via markers on the scroll bar, which helps with long files. To “merge” changes, i.e. to transfer them from one file version to another, click on the arrow next to the respective marked position. This works from left to right as well as from right to left.
In case Meld displays mojibake: By default, the program can only handle UTF-8, which is normally always the first choice – unless you are dealing with other encodings, for example from files created under Windows. In this case, other character sets can be set with gsettings or the dconf editor. For example, to add support for ISO-8859, change the key “detect-encodings” to “[‘utf8’, ‘iso8859’]”.
The program, which is programmed in Python, certainly takes its time when searching through large folder structures – diff is much faster there. On the other hand, only radical command line followers will not appreciate Meld’s clear presentation.
Meld can be easily installed from the standard Ubuntu package sources, but is only included in the Universe respository without support from the Ubuntu developers:
sudo apt install meld
For KDE, there is KDiff3 with a similar feature set as Meld and the simple Kompare. On the command line, diff has always been used.