Meld is an excellent file and folder comparison tool for Windows and Linux
Ever had two sets of the same files and folders and couldn't decide which one to retain? It may take a long time to actually open each to verify the one that's recent or the one you need; while dates associated with the files may help, they won't all the time as they don't tell you anything about the actual content.
This is where file comparison tools can be time-savers. Meld is an open source file comparison tool for Windows and Linux for exactly that purpose.
Tip: check out our overview of file comparison tools for Windows here.
Meld file comparison review
Meld's interface isn't complex in the slightest. It has a menu bar, a toolbar, a tab bar and a selector to load plain text files.
Menu bar
It is your standard menu bar for the most part. You find a link to the preferences there, may start a new comparison or save an existing one, and use other standard options such as find or copy & replace.
Tab bar
One thing I like about Meld is the ability to open multiple comparisons. The comparison pairs are displayed in their own tab which you can access from the tab bar.
To start a new comparison just hit the icon with the + on it. The up arrow jumps to the next change while the down arrow jumps to the previous. The red button stops the current action.
Comparison options
The program has two comparison options: File comparison and Directory comparison.
You can compare up to three files at a time. Text files are displayed using Meld's built-in viewer. If the files are identical, the program will display a message to indicate that directly.
If however, they are different, the program highlights the differences. You have a few options on this comparison screen. Right-clicking at a specific line allows you to mark synchronization points which can be used for merging data. Arrow icons can be clicked upon and will move the content towards the direction thy are pointing at. The Changes menu has a lot more options including jumping to the next or previous change or conflict. You can also use the push, pull, copy and merge options from this menu.
Don't worry, there is an undo option in case you make a mistake. You can use the built-in editor to make changes to your document or code and save it quickly.
Tip: The encoding drop-down menu can be useful if you want to view text that is saved in different formats like Unicode UTF, Western ISO, etc.
Folder comparison is another area where Meld excels in and my favorite feature in the program.
If you compare two folders, the program will display two lists of files similarly to how TreeCompare does it but with more options. The ones which were found in the other folder will be indicated with their file-names crossed out. You can quickly find out which files are missing or edited in that folder.
Right-click on a file to copy it to the other folder, or to open it using an external program. The toolbar has similar options and some other useful ones like displaying same or new files only.
To compare two files or folders, select the drop-down menus which appear. To select a folder you need to choose "other" which opens a pop-up Explorer window that you can use to navigate to the folder. The comparison window will display the file names, size and modified time which you can use to manage the data.
Comparisons can be saved, so you can resume where you left off instead of starting from scratch. There are file filters and text filters for regular expressions, that you can use to optimize the comparison process. Meld has a handful of dependencies on Linux including Python.
Closing Words
The visual difference indicators that Meld displays can be very helpful for developers, writers, bloggers, etc. I found it to be an excellent tool when comparing multiple folders that I was organizing on my storage drives. WinMerge , kdiff3 are good alternatives for Meld.
An excellent tool that offers features combined into one small, easily usable interface like none else does. I love it for the simplicity of design and the way I can use it with git.
Been using this for many years, very good tool. I it installed on all my systems.
i need a organization assistant ai inside google drive/ photos
i have a lot of crap in there that needs to be handled recognized and captioned
I just wish it had Windows Explorer shell integration like Winmerge.
Nice. I’ve been using Beyond Compare, which I’m pretty happy with, but I might give this one a try. I often have occasion to use comparison software.
I’ve used UltraCompare, WinMerge and Beyond Compare in the past, but since I’ve started using SmartGit I’m mainly using SmartSynchronize (available for Windows, macOS and Linux).
The directory comparison should be part of the file manager – Meld is awesome! It’s useful for finding changes within versions of source code.
Another good alternative is WinMerage (Japan Version – also has English) witch is still in active development
WinMerage? or it is WinMerge?
There are several WinMerge forks out there but more recently there has been some nice updates and developer unification around the original https://winmerge.org/ I used another fork for years but have now switched back to the .org version.
Some great features: can compare three files at the same time. Folder comparison. Image comparison.
Practically all ‘diff’ software could be used to file-checking and/or folder checking. That is at their core what these are designed to do.
For comparing texts in whatever type of text file you plan to compare, it is still a problem for almost all of these software packages to identify blocks of text properly. With that I mean that most software packages have no problem identifying blocks of texts when these are on the same or similar section of the files.
But fail to recognize blocks of texts when these are not close together in those files.
For funsies, you should export the structure of the same Oracle database using 2 different tools that can do this. This way you are sure the content in the generated files is the same. What you are not sure about is the order of the content in these generated files.
Now use any diff software and see it fail identifying blocks of text between these files.
Many have tried, some even claim to be able to do this, but rest assured, all fail. Some less miserably then others, but still.
Diff software is ideal for working with Version Control Systems like Git, Mercurial, SVN etc. For other uses it is rather limited. Unless you understand some concepts of VCS, I would not recommend to use diff software for any other purposes it appears to be able to do.
In a similar fashion you could use a VCS as a way of making versioned backups of almost anything that you can store on your computer. But that doesn’t mean you should.
Granted, for diffing software implications are much less severe, but still not necessarily a good idea.
You had me at Linux…
This looks relatively good. I have been using Beyond Compare since late -90’s and don’t have a real reason to stop using it but for someone who doesn’t have a good solution available yet, this looks pretty neat option.
Hello, I also use beyond compare but I have a problem that caused me a mess. In case of a comparison of folder with the option IGNORE FOLDER STRUSTURE it is not able to compare log names (includind folder name) This is my opinion,
So I got a huge mess several times and, in my case , I do not know what to do.
If someone can help, I appreciate very much. All the other software are for me confusing
Thank you
I tested a lot of such utilities and meld is not just good, it is only utility that can be used with git if you want to merge not two but many brunches. It is of course if we talk about non console text utilities. There are another instruments that let do such things but they are IDE built in things, IDE Idea built in tool for example. And no kdiff3 despite pretty GUI can not do things that meld can.
If you want use meld on Linux with git execute commands:
git config –global diff.tool meld
git config –global difftool.meld.path “/usr/bin/meld”
git config –global –add difftool.meld.trustExitCode false
git config –global difftool.prompt false
git config –global merge.tool meld
git config –global mergetool.meld.path “/usr/bin/meld”
git config –global –add mergetool.meld.trustExitCode false
git config –global mergetool.prompt false