Meld for Macs
yousseb.github.io
yousseb.github.io
It has a new release and is the most Mac-like of the various diff tools I've used.
That said, I haven't used the new Kaleidoscope (although I was a fan of their last version and happily used it for 8 years or so), and currently use Sublime Merge.
Edit: someone care to explain to me why this completely innocuous comment on my personal philosophy of tool value is worthy of downvoting to -2?
Maybe they were pushing back against the idea of paying money, for good quality software, that provides value to your life?!? Haha, joking of course. But seriously, I agree with you. If it is a tool that I use all the time, makes my life easier, and is of good quality… I’m happy to pay up for a license.
I’ve spent way more than that on my favorite database GUI clients over the years. Money well spent, and the developers earned it. Happy to support them!
Or they realise the hubris you need to have to think 150$ to be a meaningless amount of money. It's already quite a sum at the median American salary and the USA is one of the most affluent countries from which HN readers hail.
Ok, but I’m a software developer and this is a professional tool with which I do a job that makes me several hundred thousand dollars a year. I don’t know that it’s “hubris” to recognize that relative to the income this helps me create, its costs are a rounding error.
Obviously $150 is a lot of money for a lot of people making a much lower income!… but those people likely aren’t in the market for a 3-way diff & merge tool, so I can’t imagine why you’d expect a discussion of this tool to have to add a disclaimer accounting for them? This is a professional tool whose costs exist relative to the income they create for the professional who wields them. My plumber brother-in-law certainly doesn’t refuse to spend tens of thousands of dollars on the equipment he uses for his job on the basis that this would be too expensive for someone working the counter at a fast food store. Nor should he – the costs make him money, and that’s what’s important.
(indeed, compared to almost any trade you can think of, we're lucky that our tools cost so little)
You’re forgetting that even in e.g. European countries, the average salary is much, much lower than in the US, most software devs don’t get 6-figure salaries. They would definitely be in the market for such a tool, but the price is prohibitive.
I'm not really "forgetting" anything so much as I was making a statement about myself – you'll notice the prominent "I" and "me" in "Eh, for how much use I get out of a merge tool, $150 is pretty meaningless for the right tool" and "Ok, but I’m a software developer and this is a professional tool with which I do a job that makes me several hundred thousand dollars a year." – which for some reason has prompted a bunch of "well, whatabout median American income making non-developers" and "well, whatabout underpaid European developers". I am neither of these things. Wasn't talking about them. North American saws probably aren't priced affordably for Estonian carpenters either, when it comes down to it.
Because downvoting isn’t discussion, it’s a lazy way of dismissing something instead of taking a real position around whatever it is you disagree with.
> Because you are not writing for yourself but for the HN readership and the HN readership most definitely includes the people you pretend not to be "forgetting" but actually are.
Do you honestly think that “every post must include and add a disclaimer accounting for every possible perspective of every possible reader anywhere on Planet Earth” is a reasonable expectation to have for this, or any, conversation forum?
Should every discussion of, say, Spotify mostly focus on how unaffordable it is the population of Burundi, rather than trusting reasonable readers to understand that people are speaking to their own experiences rather than trying to make universal claims about the entire globe?
I’m seriously asking, because it seems like an absurd expectation to me.
If you purposefully push it to absurde length, obviously it becomes an absurd expectation.
No one is asking you to disclaim everything you write. I am just pointing to you that if you can't be bothered to think about how what you write is going to be received, you shouldn't be surprised to be downvoted. You seem surprised that people don't care about what things mean to you when you communicate whereas it should be obvious. You are not writing for you after all but to be read.
Oh? No? Then why did you write:
> Or they realise the hubris you need to have to think 150$ to be a meaningless amount of money.
What is the hubris if not that there’s somebody, somewhere for whom it’s a lot of money that I failed to add enough disclaimers about for your tastes?
I was clearing talking about $150’s value to me relative to my own personal income, so you clearly felt like that needed to come with some disclaimer about Italian developers, for some reason, despite me living half a planet away from Italy and never having said anything about anyone other than I, myself, and me.
What seems like the real hubris here is yours — your insistence that everybody else’s personal opinion on what’s a lot of money to them personally MUST make space for the chip you have on your shoulder.
> You seem surprised that people don't care about what things mean to you when you communicate whereas it should be obvious. You are not writing for you after all but to be read.
While I am writing to be read, I am expecting an audience that speaks English well enough to understand that “I” and “me” refers to, well, me, and logical and mature enough to understand that a statement written by me and about me quite obviously has nothing whatsoever to do with the income of people halfway across the planet – it’s just spectacularly and completely irrelevant to anything I wrote about how much the cost of the tool impacts me personally.
I seriously doubt that Italian developers consider less than 0.06% of their income “a lot of money” either, for what it’s worth. If you make $50,000, do you consider $30 “a lot of money”? Because that’s the scale of what I’m talking about here.
And sure, $30 is probably still a lot of money to someone somewhere else; but do you also go shout at teenagers in GameStop the next time they refer to a $30 video game as “cheap”? Seems like foolish and irrelevant behaviour, to me. Somebody’s cheap will always be someone else’s expensive.
If you can't afford this product then you can just not buy it. You're not entitled to every piece of professional kit, especially a tool that's basically Meld with support for pictures and Office files. It's a luxury product, hardly a necessity, just like high-end smartphones or brand soda.
Furthermore, this is a piece of Mac-only kit so if you're in the market for this tool you're probably already using high-end hardware. If you can afford Apple, you can save up for Kaleidoscope.
No one in this thread (except you) said anything about being entitled.
You're fighting a straw man.
150$ for a tool you use everyday for your job? Go ask a carpenter how much they spend on their tools, and they make a fraction of what a software developer makes.
If you’re self employed and use it as a business expense it’s more reasonable an expense.
For reference, I've used Sublime Text for many, many years and was only able to justify the 79$ (now 99$) purchase price when ST4 came out last year, after a few months of unusually low expenses at home. I would 100% not be able to casually afford it now, in a normal month, even for a tool I use daily.
And I'm not some kind of out-of-school trainee, I've been working as a dev for the past 9 years and I'm now doing devops in a somewhat well paying company.
It’s a small sum of money for me. It is obviously not a small sum of money for a Bangladeshi beggar or a Peruvian cobbler.
What, exactly, is the point of this complaint? It’s obvious that people are speaking about themselves. Some people in some nations have more money than other people in other nations — that’s the world we live in. We are all already aware of this.
What is useful about bringing this up? Should every discussion of every price of everything in the world have to list how affordable it is in each and every country on earth? Is that your idea of a realistic approach to a discussion?
The parent just explained why in Italy this would not be a small sum of money, and you’re now equating them with a beggar.
The whole point we’re trying to make is that it’s not “Bangladeshi beggars” that cannot afford this, but a large group of the intended target audience.
That can be a fair trade-off they make, but you seem to brush it off as “if you can’t afford $150 for a tool like this, obviously you’re a beggar and definitely not a software dev”, which shows a completely out of touch perspective on salaries, cost of living, exchange rate, etc of a huge portion of the modernized, western world.
I’d suggest you learn to read things charitably, instead of searching for the most unlikely and preposterous meaning you can possibly dream up in order to get mad at a post. You’ll be happier for it.
I am not from Italy, so I can't say how much carpenters in Italy spend on their tools, but I know that when we had a carpenter work on our house in Austria, they showed up with a lot more than $150 worth of tools. Just the Hilti drill they had has a list price north of 2000€. $150 might just get you the drill serviced.
They might even pay more for software than the average programmer -- typical CAD software used for construction plans often costs 1000€ or more per seat.
Also, when comparing the salary to the cost of tools you have to consider that the salary is what's left after expenses (such as tools) have been accounted for.
Are you suggesting students and other people earning much less than 7 figures aren't supposed to be using a basic dev tool? Unless you have a very specific meaning of "aren't in the market for a diff tool".
It's not luck: our tools cost so little because we are tool makers - I don't imagine iron smiths had trouble with expensive anvils either.
What? There are plenty of free options out there – that’s why they’re not likely to be in the market for a paid tool. It requires an incredibly uncharitable reading to somehow get “students aren’t allowed to merge things” from anything I wrote.
I don’t think every tool needs to be free just because a price-sensitive part of the market exists, and I personally appreciate that there are, for what is a meaninglessly small amount of money for me, options in the market that invest in solving some of the jank that the free options bring with them. But some people aren’t doing this professionally and some people don’t notice the jank and that’s fine too – they aren’t shopping for anything better. I wasn’t either when I was a student. Free was fine enough.
> I don't imagine iron smiths had trouble with expensive anvils either.
I would suggest not looking at getting into blacksmithing, if you want to maintain this belief. Even if you don’t buy one, the raw material and fuel is a far far cry from free.
Take Jetbrains' software: I happily pay for that every year and it's 100% worth it. I could stop paying and use the fallback licence the rest of my lifr but I use the newer features and support often enough that I want to invest.
I've never used the tool in question but from what I can see it does a whole of a lot more than Meld or even Jetbrains' merge tool. It supports diffing a wild range of file formats that makes it useful for programmers but also helps out when cloud sync runs into conflicts.
Good tools often cost money. A carpenter doesn't buy value brand hardware for their most important tools and while a developer has the advantage of access to open source, paying for good tools shouldn't be controversial.
A one-time purchase of $150 is less than what I pay for Netflix in a year. It's not a meaningless amount, it's a fair price for a piece of software. Were it subscription, you'd pay paying $5 per month for years to come, with the software broken the moment you stop paying. I'll take my purchased software that will just keep working, thank you very much.
This is a shiny tool for developers from rich countries, not a necessity to develop code. I think your argument is valid for things like the price of an Apple dev account ($99 per year if you want to publish an app and no option for out-of-store distribution) but this is nothing more than a shiny UI that will save your minutes per day.
Because to expect the latter is both ridiculous and impossible.
I didn’t read it that way at all, and still don’t after the interpretation surprised me enough to re-read it several times. They clearly said it’s insignificant relative to the value they get from it.
I don’t think the suggestion was that everyone should reach the same conclusion in their own cost/benefit analysis, or that the sum itself is insignificant. Just that they value it enough to dismiss the cost to them.
Several of us have invested gob knows how many thousands of dollars into tools we value for the productivity they afford. I could certainly make a decent living on a low spec computer in whatever form factor is most economical at the time, but I spent significantly more because I’m more effective with tools that better fit my workflow. But those lower spec options are available for people with less budget flexibility or more budget sensitivity.
Likewise, Kaleidoscope and other high cost software is prohibitively expensive for some and absolutely worth every fractional unit of currency to others. I own a Kaleidoscope license and don’t regret it. There are countless softwares across pretty much the entire range of license pricing that I’d pass on because they’re either not valuable to me or not valuable enough to justify the price.
The issue isn’t with people being derisive of bad alternatives, but folk who are so convinced of the utility of garbage that they keep promoting it.
Database / warehouse IDEs are also such an extreme edge case that I’ll leave to reader as an exercise to reason about. Why even bring that up?
It still gives me sticker shock, though.
I certainly didn’t pay $150 for it at the time, but if I had done, it would’ve been worth every penny.
—
I seem to recall the app was acquired by a new development team a couple of years ago. It seems to have been one of those rare acquisitions where it’s consistently gotten better afterwards (and it was great to begin with).
https://twitter.com/kaleidoscopeapp/status/34193087090041651...
That tweet is from 2013 and nothing has changed in the intervening nine years.
But for personal use the UI improvements aren't quite enough to push me over the edge to buying it. The cheaper or open-source tools do just fine.
Like "oh I could build that" kind of epiphanies.
It might seem expensive at first if you are not used to paying for software but it's not a subscription and if you use it at work you can probably get it through your employer in any case.
Meaning, comparing two slightly different copies of a project containing maybe 1/4 a million files, with a few variations between them. It takes quite a while to initially open the comparison window, and that's fine as it's a lot of data to churn thru.
But where the problem lies, is when you dbl click into a subdirectory of that comparison, it again takes forever to open a window for just the contents of that directory, even thou it already has done a full comparison of all the files in it, when opening the parent comparison. For some reason it starts again in that sub directory instead of just using the comparison data it's previously generated.
I've used Araxis Merge, it's clunky, not really a true mac app, but actually works fairly decently. Pity it's effectively a subscription.
Meld is ok, but crashes with large comparisons, and the UI is fairly painful.
Perhaps in the future BC will switch to the Cocoa backend and provide more "native" controls (and wont need to bundle Qt either).
KDiff3 is another tool that supports it.
A fortnight later, they wreck a merge and they spend their afternoon re-merging conflicts they’ve already had.
Such people almost always use the git tools provided in IntelliJ.
OTOH, IntelliJ’s "Magic wand" is totally worth the hassle.
Sadomasochism runs deep.
If you’re not suffering for your craft, you’re not a Real Programmer.
I wouldn't know how to explain what does the magic wand do, but it seems a huge waste of time NOT having it in other merge solutions. I can't remember a case where it the magic wand was causing a semantic error and I'm using it for 7-8 years by now. Mostly in Clojure code though.
I hate how the UI looks like a half-assed rip-off of Windows 95, but it's the only tool I know that shows me everything I want to see when merging / rebasing git branches.
I think it also allows comparing 3 or more arbitrary files, which seems like a pretty basic task that most diff tools just can't do at all.
But Meld is great at 2 way merges, and allowing you to selectively apply changes.
I became familiar with it at a previous job that used perforce, and I have just kept using it with git. It's free to download, although you have to fill out an annoying form.
Dedicated to Osama
If you use this software, please pray for my brother.
https://www.stuff.co.nz/national/christchurch-shooting/111375038/osama-abu-kwaik-was-a-refugee-born-to-an-orphan-who-died-in-christchurch-the-city-he-loved
https://github.com/yousseb/meld/releases/tag/osx-19It appears this is the same version (the page says "Homebrew now installs Meld for OSX").
The macOS integration is a bit klunky (really feels like a non-native app), but this remains my preferred visual diff app. Thanks to those who make it and maintain the macOS port.
I recall that there's been a lot of work on GTK4/macOS. Maybe that'll come into play some day.
diffstatic is nice too and use it sparingly
Meld, on the other hand, is the best tool for comparing local copies and directories.
Is there some other tool out there that works in a similar way, and that good?
(tho, typing idea . and doing a merge fix is not that bad)
That tool is so good because it leverages the entire eco-system of IDE it is running in. The resulting merge panel is as powerful as any editor window in the IDE. It has code inspections, it detects missing imports, it does everything.
It might be the case that ripping the diff/merge tool out of the IDE would result in way inferior product than we get when we use it within the IDE.
Otherwise, yeah it's amazing!
[mergetool "idea"]
cmd = /usr/bin/env idea merge "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
Then you just run `git mergetool -t idea` and voilà[1]: https://www.jetbrains.com/help/idea/command-line-merge-tool....
I've used it for more than 15 years, and bought it 3-4 times. I honestly don't believe it's worth that, and I'm not going to buy it again. I would be willing to pay what they ask for a years license, to actually own it in perpetuity, only receiving updates when OS changes stop it functioning. As they won't offer that, I no longer use it.
If you work primarily with frontend technologies and want a syntax aware diff on GitHub PRs, difflens might be right up your alley! Standalone Mac and Windows apps are coming out soon.
old job: Changes staged locally for 2-3 weeks sometimes. Team-specific branches, integrating into the mainline periodically.. eventually moved to several hundred devs committing to mainline. One monster repo
Beyond Compare 2 was the only tool for the job simply for the ability to provide a manual hint (via spacebar) to align two version of the same file
current company: never merge more than a line or two which I do with vim. Change sets only last max 1 week on my machine. We have 5-6 services (each in their own repo). 20 people committing amongst them all.
I do wish our code review tool was better though. Perhaps I will take one of the suggestions from this thread and build a custom CR work flow.
On that page you can paste your merge conflict and copy the automatically merged result, along with some useful diffs. I hope it helps someone else. So far it solves around 80% of my conflicts automatically.
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
[mergetool "meld"]
cmd = meld --auto-merge --output "$MERGED" "$LOCAL" "$BASE" "$REMOTE"As are many other apps. Yet they keep getting redesigned and engulfed by endless feature creep because people gotta work on something.
Indeed, I have it on my Turbo NeXTStation (3.2). Was it revised slightly for NeXTSTEP 4.0 (1996) perhaps?
Put this in your ~/.gitconfig
[merge]
tool = opendiff
then next time you get a merge conflict, just do: `git mergetool`
it will open xcode's FileMerge.app, which is the best mergetool I've ever used.In fact, I use Wine on my Mac specifically so I can use WinMerge.
Gonna have to agree to (vehemently) disagree on that. :)
It has not.
I have both installed. WinMerge is the superior program. It has 3-way merge, among many, many other features.
Are you thinking of WinDiff? https://adamtheautomator.com/windiff/
I'm talking about WinMerge: https://winmerge.org/?lang=en
WinMerge works fine via Wine.
The same thing for KDE connect two days ago. I am not sure I totally agree with the feeling though, in fact, it's the opposite. Many apps I use on a daily basis are not available for Mac.
I know that it's mostly security theather, but those scary warnings that Apple shows for software they haven't notarized must scare a lot of people away.
People who ascribe to the FLOSS ethos are often opposed to the terms and conditions Apple dictates.
Is there some common repository of merge conflicts, which one can use to gauge how well a certain tool fares?
Always used meld on Ubuntu as well. I love how simple and clear it is.
Small UX/QOL improvement on OSX could be to remember the window's position and size between launches.
Anyone know how to actually do that? I've not been able to find a donation link on the Meld website.
“We usually don’t receive donations for specific GNOME projects, but we collect donations for the whole organization. You can donate to GNOME at Donate – GNOME 6
Thanks for your interest in helping!“
(donation link is https://www.gnome.org/donate/)
The most recent version works on Mojave and is available via Homebrew.