I used it a lot many years ago, not so much now. I don't even know if it's on my laptop. I'm not using any other alternative. Maybe git merge and git diff are good enough for my needs. I'm also using both gitk and gitg, usually gitg. Maybe they qualify as alternatives.
I remember at one point there was a new version (based on gtk3 perhaps) that didn't work as well (useless type of scrollbars and slow) and I did some shenanigans to have an older version again on archlinux. However now even fresh installs do look and work good, I'm not sure what happened to that new version, maybe they improved the gtk3 based one to be as good as the one before it and I don't notice the difference anymore...
It's not open source, and comes with all the baggage of perforce, but p4merge and p4diff are just excellent tools that I install on every machine I work on.
I only recently used this for the first time and I must say: perfect for a quick file comparison. Don't know about other use cases. Nice to see it mentioned here.
I use Beyond Compare mainly for sync of folders by comparing files (sizes, dates) and not for file contents diff as such. Part of my backup strategy while copying/syncing file between windows/mac/NAS ;-)
I've been using Meld since years ago, and it's my default go-to diff viewer. The visual style they implemented helps me a lot to reason about how lines have been added or deleted from documents in the side by side comparison. Very neat!
The directory contents tree diff is also really useful.
I wish they made it even easier the basic case of comparing aribtrary text. Maybe it should be the default mode after opening the program, instead of having to click on a couple buttons, because I use it a lot to manually paste pieces of text. For example, logs from a server during testing, to compare what went different between runs.
Another welcomed addition would be "ignore masks". Some kind of regex input that could be used to quickly tell Meld which parts of the text to skip comparing. That way, comparison of log files could be made where a timestamps column would be ignored.
Yes! There are text filters but those are kind of a static setting, found somewhere in the Preferences menu. When I wrote my comment I had in mind some user input that could be more interactive for one off, line based filtering. Although you are right, the already existing filter settings can be used for what I said, if one already has a regex that works fine for the current text being compared.
Yeah, I use it a lot, but 80% of that is comparing arbitrary text that I just want to copy-paste in. To be fair, that's just two clicks now (first click "File" comparison, then "blank comparison"), but that still feels a bit cumbersome.
Yes. They often have sales, and I picked up Pro for about the price of Standard a few years back. If you see a sale, get Pro. If you are not worried about the pro feature set, get standard.
The other thing is that the trial used to be very fair. I don’t know if they changed it, but it used to give you “days of usage” not contiguous days. I once used it for about 5 months because the 30 day trial only counted the days I actually used it and I saved using it for when I really needed it, and used WinMerge when I could instead.
I actually don't understand what people love about BC. The only thing I find it extremely useful for is the occasional files where inline diffs are practically mandatory, like CSVs. Other than that, I generally find it frustrating compared to TortoiseGitMerge, except perhaps for some very specific/unusual scenarios. In particular the line highlighting is annoying - instead of coloring the lines that were added vs. removed differently, it colors lines according to whether they're an "important difference" or "unimportant difference" (?!), which is borderline useless to me. What do people love about it so much?
+1 for TortoiseGitMerge, which is my go-to tool these days. It's Windows only but not a problem for me since I mostly work in Windows.
My SO adores Meld, but she works with Linux. I tried using it but couldn't get used to it. She also makes fun of me (half in jest) because I use Tortoise Git instead of the command line...
I use TortoiseGit too, ever since I used TortoiseSVN back in the day. Highly underrated, and ridiculously powerful, I’ve practically never had to look up “how to do x” :)
The things that makes it borderline useless to you is actually one reason I like it so much. Makes it really easy to do code reviews and focus on what actually matters. Also, it was until somewhat recently the undisputed best 3-way merge tool. Meld gets close, but to me Meld's UI is sluggish and fuzzy (on Windows) while BC is snappy and sharp.
I’ve been using BC since the early 2000’s, so probably more than 15 years. I know it backwards and forwards. If you set it up right, it is pretty powerful. It allows a lot of the stuff that other tools fail on to be overcome. Manual alignment is a dream. The rules based comparison is very nice. Ignoring unimportant differences removes pretty much all the white space differences. The ease of selecting arbitrary blocks and moving them left or right is powerful. I’ve tried both Windiff and kdiff3 and both have missing features.
Back before git, it was common to take a massive set of changes and merge them manually when merging branches, and BC was the only tool that made it painless for me.
I stumped up my own cash for a pro license and I use it almost daily even now.
Interesting. Have you tried TortoiseGitDiff? I'd be curious what you think of that in comparison if so.
Update: I just downloaded Meld. It literally takes ~half a second to change the cursor location when I click in a highlighted region, which is already making me dislike it. Is this normal?
I'll add the ability to specify and tag regexes ("comment", "timestamp", etc) on a file-type by file-type basis, and then specify various tags as "unimportant" for the current diff is super powerful.
It means you can do things like compare two system logs from different times and have it highlight you exactly the differences you care about.
Meld is great. The only nitpick I have is that winmerge was more efficient in resolving a file with the alt-down alt-left/right commands going one diff block at a time.
In meld, these commands operate depending on focus. When the focus is in the left file, alt-right merges to the right, but you cannot do alt-left to merge from the right file.
Or on terminals https://github.com/mookid/diffr with specific settings that use 256 colors for highlighting word differences as well.
But for manual merging I haven't found anything better than ediff. That's the only reason I install emacs on my work machines. Seemless integration into a text editor is just unbeatable.
WinMerge is better. It has better UI: bottom line comparison, keyboard shortcuts, copy left to right and vice-versa, lots of preferences settings, etc. Too bad it is Windows-only.
If you can accept a paid version of WinMerge for Linux and Mac I'd highly recommend BeyondCompare (U$ 30.00).
With the switch to GTK3, it no longer fits on my screen (and headerbars stand out like a sore thumb too). Kdiff3 was confusing for a moment, but does a good job too.
I don't like the whole "balloons with tails" thing meld does.
xxdiff strikes the best balance between "being a graphical tool" and "not having distracting clutter" in my opinion.
I use both Meld and Diffuse[1] depending on what I do. I find Diffuse represents diffs better visually, while Meld being better for actually merging contents since you can just click on those arrows.
I was given a fresh copy of Windows at work the other week and had to install all tooling afresh. I decided to take the opportunity to try meld.
The first merge I did, even after reading the website, I couldn't fathom it. I understood the paradigm of merging into $BASE but couldn't figure out how to simply take these 5 lines from $REMOTE and these 3 from $LOCAL, so went back to the trusty Beyond Compare.
As a long time Sublime Text[1] user, I've been using Sublime Merge[2] since the day it's been launched and it brings me the same speed and minimalism I get with Sublime Text and has evolved quite a lot to be able to do most things I need in a merge tool.
Same. I don't know why but there's something so intuitive and easy to use and yet so powerful about Sublime Merge's merge tool that it quickly became my favorite after having used a lot of different other tools in the past (TortoiseGit, Meld, etc.)
Yeah. I would be interested in using Sublime Merge as a Merge tool for projects based in Perforce and Mercurial. But last I checked it wasn't really capable of that.
a nice feature of sublime merge that i haven't seen in other programs is actually showing you the git commands that will run when you press whatever button
Also the ability to create custom menu items (e.g for any context menu) for whatever command you desire. It's a game changer for me that I haven't seen in any other git client.
Also it's lightning fast and relatively bug free compared to the mess that is Sourcetree, which used to be my favorite client but then went utterly downhill.
145 comments
[ 3.0 ms ] story [ 191 ms ] threadhttps://gitlab.gnome.org/GNOME/meld ## code
Meld 3.21.1 — 07 Jan 2022 -- thanks Meld !!
I remember at one point there was a new version (based on gtk3 perhaps) that didn't work as well (useless type of scrollbars and slow) and I did some shenanigans to have an older version again on archlinux. However now even fresh installs do look and work good, I'm not sure what happened to that new version, maybe they improved the gtk3 based one to be as good as the one before it and I don't notice the difference anymore...
https://www.perforce.com/products/helix-core-apps/merge-diff...
The directory contents tree diff is also really useful.
I wish they made it even easier the basic case of comparing aribtrary text. Maybe it should be the default mode after opening the program, instead of having to click on a couple buttons, because I use it a lot to manually paste pieces of text. For example, logs from a server during testing, to compare what went different between runs.
Another welcomed addition would be "ignore masks". Some kind of regex input that could be used to quickly tell Meld which parts of the text to skip comparing. That way, comparison of log files could be made where a timestamps column would be ignored.
On Windows, WinMerge[1] is a better alternative. Too bad is Windows only.
For a non-FOSS and cross platform solution I recommend BeyondCompare (U$30.00)[2]. It replicates most of WinMerge UI.
[1] https://winmerge.org/
[2] https://scootersoftware.com/
P4Merge is very good at the second but not so much at the first.
Also, to this date it doesn't have an OS-X version for M1 CPUs.
Pro version gives you 3 panel merging. If you use that a lot then it might be worth it. Or, instead, use P4Merge for it.
The other thing is that the trial used to be very fair. I don’t know if they changed it, but it used to give you “days of usage” not contiguous days. I once used it for about 5 months because the 30 day trial only counted the days I actually used it and I saved using it for when I really needed it, and used WinMerge when I could instead.
Beyond Compare is a gem.
My SO adores Meld, but she works with Linux. I tried using it but couldn't get used to it. She also makes fun of me (half in jest) because I use Tortoise Git instead of the command line...
Back before git, it was common to take a massive set of changes and merge them manually when merging branches, and BC was the only tool that made it painless for me.
I stumped up my own cash for a pro license and I use it almost daily even now.
Update: I just downloaded Meld. It literally takes ~half a second to change the cursor location when I click in a highlighted region, which is already making me dislike it. Is this normal?
It means you can do things like compare two system logs from different times and have it highlight you exactly the differences you care about.
In meld, these commands operate depending on focus. When the focus is in the left file, alt-right merges to the right, but you cannot do alt-left to merge from the right file.
Or on terminals https://github.com/mookid/diffr with specific settings that use 256 colors for highlighting word differences as well.
But for manual merging I haven't found anything better than ediff. That's the only reason I install emacs on my work machines. Seemless integration into a text editor is just unbeatable.
[0]: https://winmerge.org
If you can accept a paid version of WinMerge for Linux and Mac I'd highly recommend BeyondCompare (U$ 30.00).
I definded this wrapper script ~/bin/git-ydiff-s:
with which you can do `git ydiff-s` in your repos easily.I don't like the whole "balloons with tails" thing meld does. xxdiff strikes the best balance between "being a graphical tool" and "not having distracting clutter" in my opinion.
[1]: https://github.com/MightyCreak/diffuse
It’d be a great if an OSS tool was as good or better. But my experience thus far is that Araxis/BC3 are simply much better.
https://marketplace.visualstudio.com/items?itemName=L13RARY....
The first merge I did, even after reading the website, I couldn't fathom it. I understood the paradigm of merging into $BASE but couldn't figure out how to simply take these 5 lines from $REMOTE and these 3 from $LOCAL, so went back to the trusty Beyond Compare.
Might give it another shot.
Not affiliated with them in any way by the way.
[1] https://www.sublimetext.com/ [2] https://www.sublimemerge.com/
It should have been called Sublime Git. Alas.
Also it's lightning fast and relatively bug free compared to the mess that is Sourcetree, which used to be my favorite client but then went utterly downhill.
It uses categories like per-commit or per-branch commands.