Hacker News new | past | comments | ask | show | jobs | submit login
Sublime Merge 2 (sublimetext.com)
161 points by robin_reala on May 26, 2020 | hide | past | favorite | 101 comments

Sublime Merge seems to want to run as a git client, fully controling the behavior.

I wanted to use it as a difftool as I already am fine with the git cli. I don't think it can do it? Maybe I could not find the documentation.

The thing is, I used https://www.kaleidoscopeapp.com/ on mac, which is just pure joy. Recently I'm trying to migrate into Windows with WSL and a decent graphical diff / merge tool is my pain point.

Any suggestions (or a way to use SM via CLI)?

I'm in the same boat as you. There was something about integrating SM, but I couldn't get it to work. There are two decent open source choices IMO.

Meld Merge (https://meldmerge.org/) is my favourite, due to being cross-platform. Works well for merging, and `git difftool -d`. Although I cannot get it to run decently on macOS nowadays :(

WinMerge (https://winmerge.org/) is also good, but Windows only.

The custom Mac builds the Meld site points you at work ok for me on Catalina. The biggest issue is there’s no proper command line utility on Mac for some reason, but the person maintaining the unofficial Mac fork documents an incantation that’ll work for git difftool, using open and Meld.app.

I recommend https://www.scootersoftware.com/ Great file comparison and text comparison tool

I used Beyond Compare starting back in my Delphi days when it was notable for being one of a small handful of popular utilities written in Delphi. It’s a fantastic diff tool but man, it looks super rough in dark mode on Mac and I don’t think that’s been ok for awhile now in a dev tool. The “theming” is really bad.

Beyond Compare is really good on Windows; does the Mac version (which from changelogs appears to be a bit different from the Windows one) have actual problems apart from looking "rough"?

Nothing major in the way of other problems—-think the command line utility might have been a little quirky but that was about it.

But for a visual file comparison tool having giant light regions of the screen in dark mode actually affects functionality in a significant way. The “theming” doesn’t actually theme most of the interface chrome so only minor parts of it go dark, at least last I tried it a month ago.

I haven’t tried it in Windows dark mode. Might work better there. On Mac it’s probably using a Lazarus-based widget library, assuming it’s still written in Delphi, and it probably just doesn’t integrate with the system well.

To be clear, I paid Scooter Software for the pro version back in the 90s and about two years ago again. What I’m saying is I’m licensed for it and still have been looking for other apps because it’s not good enough anymore. I’m not just spitballing, unfortunately :(

I've tried to find a decent modern-looking Windows diff client, and have just settled for VS Code. It's certainly not perfect, but with a few extensions (mainly Compare Folders[1]) it's a workable solution for my needs.

[1] https://marketplace.visualstudio.com/items?itemName=moshfeu....

Beyond Compare from Scooter Software is a really good diff/merge tool. It doesn't used 'Modern UI' though, it's just a very polished, fast Classic Windows app.

I use IntelliJ as my git diff and git merge tool. Requires this kind of conf: https://gist.github.com/rambabusaravanan/1d1902e599c9c680319...

> I could not find the documentation.

First result : https://www.sublimemerge.com/docs/command_line

Yeah I found that too but it only has a mergetool integration. No diff command listed there.

You can actually run smerge mergetool LEFT RIGHT and it will do a 2-way merge (effectively a diff).

it is positively ancient, but KDiff3 is still my go-to: https://sourceforge.net/projects/kdiff3/

Definitely not the best looking app, but KDiff3 is the best one I’ve found that can do a 4-panel 3-way merge, i.e. showing original, left, right, and merged.

Kaleidoscope is so nice, and they even released an update last month (I’d assumed it was dead after radio silence for a year, after Black Pixel was bought.)

You can view diffs in SM then make your commits via CLI.

The UIs developed by Sublime HQ are incredible. I so wish they would develop a database client with this level of polish.

Speaking of good database clients, I actually got my favorite from HN: https://dbeaver.io/ -- it's not "sexy" but it's the best one I've used.

That's actually the opposite of what Sublime HQ produces. It's heavy, ugly, and pretty slow (it's based on Eclipse, so there's that). It might work but it's not enjoyable.

This is going to sound pretty shallow, but as powerful as Dbeaver is, I can't stand how it looks. I'm using DataGrip solely because of the large amount of themes available.

It's ugly and the GUI performs like mud on my computer. But it's free and full-featured, so it's hard to complain too much.

Tableplus is so much better.

Perhaps, but DBeaver is under the Apache license and TablePlus is from what I can tell proprietary software.


I wish there was UI that I could just point at a repository locally and get a GitHub-like view of the repository, where I can browse all the files, see their last commit date/message, click on them, and see the contents as well as history and git blame. I keep hoping someone will build a GitHub UI without having to use GitHub but for some reason every one of these Git UIs focus on just showing me the commit history and diffs. This is useful too but it's not really much different from all the other apps that do this.

Git has an included web server that covers a lot of this: https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb

Yeah kind of like this, but without having to use a browser. I guess I could wrap Electron around this, but groan.

> but without having to use a browser

> wrap Electron around this


Fork has an awesome UI/UX

>point it at a repository locally and get a GitHub-like view of the repository, where I can browse all the files, see their last commit date/message, click on them, and see the contents as well as history and git blame

You can do pretty much all of these things with Sublime Merge 2, so?

I don't think so. At first glance, the file browser is only showing files that were part of the commit selected. He wants to have a full file explorer like if you opened a Github repo and started clicking into directories. Unless there's an option to enable that somewhere that I'm missing.

When you have a specific commit selected you can see in the Files tab at the bottom two buttons Changes and Tree. If you select Tree it will show you the tree for that commit. From there you can get the blame log or history for individual files.

There it is. I stand corrected. Thanks for pointing that out. Merge is much quicker to navigate to specific points in time than GitHub and GitLab are, so this should be useful.

I haven't seen something like Github's file browser in Sublime Merge. That is, where I can browse ALL the files in a particular branch, just like on Github. Maybe I haven't dug in enough if this exists.

Select the Tree view. It will show all dirs/files in the branch from the selected commit (e.g. HEAD).

It doesn't do quite everything you asked for, but gitk fulfills a lot of that.

I use gogs for this, and s/Organization/Folder/ in the i18n.

Doesn't get much closer to github-but-local than that I reckon.

This actually makes me wonder which the company's plans are.

Sublime Text's changelog (https://www.sublimetext.com/3) depicts the product as essentially abandoned, which matches my experience.

On the other hand, the page linked says that the team is expanding.

I'm puzzled.

We are actively working on Sublime Text as I type here, and we've got a lot of good stuff coming!

Sublime Merge and Sublime Text share a bunch of low-level code, various aspects like the syntax definitions and engine, the UI library, rendering backends, and a whole bunch more. The higher-level UI components and the exact way they are put together are different, but there is a lot shared.

All of that is to say that we've been busy at work on Sublime Text and have a whole bunch of new features, improvements and bugs fixes that are working their way towards a release.

Some of them are present in Sublime Merge since they are part of the shared code base, but a whole bunch aren't present in Merge since they are the sort of thing you deal with with editing and navigating source code, and not when dealing with version control.

We now have six engineers working at Sublime HQ between the Sublime Text and Sublime Merge products. So we have been growing, and we are still very much dedicated to both Sublime Text, and Sublime Merge.

Will there be any significant improvements in Sublime Text? Reading through the changelog it seems ST4 is mostly polishing and playing fetchup with VS Code, but adding nothing revolutionary which could be sold as a killer-feature.

For example, vim can offer modal editing, composable commands and a builtin commandline with ex-mode as it's killer-features. Emacs, well it's emacs, it always has much going, but lately it got some additional stuff like which-keys, hydra-mode and magits transient commands, which all innovate the editor-game quite strong.

Compared to that, ST seems to be quite conservative and only competing on a very small area.

From your comment it sounds like you are looking for Sublime Text to become something… different?

From my perspective, Sublime Text isn't looking to become something different. Instead we are continuing to make a well-polished text editor that is fast and can be extended in many ways. As you've noted, we've added a lot of polish, but also added some pretty significant features, and continued to lay the ground work for more smart, out-of-the-box functionality. Some of the things may not jump out at you in terms of reading a changelog, but you'll feel them as you see how they can help you to navigate and write software.

Many users want or need their edge cases more well handled. Package developers want to have access to more information and be able to influence more of the behavior of the application. We daily engage with active community members to better understand how they want to add features, and are regularly working on ways to make that possible. However, the biggest number of users are helped by the features provided in a default install and that require no configuration. We've continued to put work into those areas to make Sublime Text excellent and easy-to-use, from the moment you open it.

I'm not particularly interested a feature by feature comparison, but I think upon a close look, you'll find that Sublime Text generally provides excellent, high-performance implementations of many features that get less attention in other products. Some people really appreciate the polish, the speed, the things that just work. Other people want more automation and deep language integration. Some people want a single interface that contains many different tools. Through a combination of default functionality and plugins, we can cover a fair bit of that. Clearly we aren't trying to be everything to everyone. Luckily for users there is a healthy market of tools to write software, and we'll continue to be a part of that and to build a product that we (and many, many others) love to use.

What do you use guys to build such an awesome cross platform app? it is native, right?

It all depends on what you mean by "native." :-)

Our products are implemented in C++, and we utilize platform-specific APIs to integrate with the OS in the ways that make the most sense.

In terms of the UI, however, we have a custom library with our own controls, control structure, event handling, rendering, etc. We only use native UI for menus, file pickers and title bars. We do, however, use OS-provided font layout and rendering APIs so that text looks like other apps on your OS.

By implementing only what we need, using a language with low overhead, and making a point of writing code that is efficient, we can generally accomplish excellent performance. This, combined with trying to following platform conventions and taking the time to integrate with the OS APIs, provides a UI that feels snappy and generally doesn't look out-of-place, such as most Java UIs.

According to this comment[1] by the author, he used cross-platform C++. See also [2] from Sublime’s other author.

[1] https://news.ycombinator.com/item?id=2822114

[2] https://news.ycombinator.com/item?id=23312357

With all due respect, most of us moved to VS Code. I paid for Sublime, I'm not paying for a git merge GUI $100. It's just way too expensive!

You can use both Sublime Text and Sublime Merge without paying if you choose to (as I did when I was a broke student).

Unlike VS Code, not all software can be open sourced and provided for free while many paid software engineers are employed to actively develop it by a trillion-dollar corporation. Software that is fast, native and cross platform without ads costs money to make. I support it with my dollars (I use SM and ST). Fortunately, there is a healthy market for GIT GUI clients as seen by Git Kraken, Source Tree, Fork, Sublime Merge, etc.

Thank you for stating the obvious! My point was that there are cheaper and better git GUI tools - many of them free, some paid, yet, cheaper. $100 is way too much for something you get better and for free or less. For example, VS Code + plugins like Git Lens is better than Sublime Merge.

GitLens is great, if you like it use it. When I use VS Code I do, but VS Code is not the only tool I use in my work. You are free to your opinion of course, I am just not a fan of statements like "X is better than Y because Y costs money" with no evidence, as if it were obvious.

The GitLens website asks for monetary support and sponsorship front and center. If that's the way you prefer, that is perfectly OK. That doesn't automatically make it a better product.

All my dev tools are open-source... I don't want to break the rule and add a nagware to the stack.

Sublime Text 4 is in beta and active development. AFAIK the latest build is 4074 released 28th April 2020.

I'm not sure where the changelog for Sublime Text 4 lives officially, however searching the web turned up this gist[1].

[1] https://gist.github.com/jfcherng/7bf4103ea486d1f67b7970e846b...

is there a waitlist or anything to join the alpha/beta of ST4? the sublime website doesn't seem to acknowledge that ST4 is even in the works yet, so i'm guessing it's still only available to an inner circle.

i'm a big fan and would love to see an early peek at what's coming, and would be happy to do bughunting or feedback if that's what the team is looking for.

Sublime Text 4 dev builds (with public download links for Linux, Windows and Mac) are announced on their Discord [0]. If you're using Arch, or just want a quick download link to the probably most recent Linux build, see [1]. I believe a valid ST3 license is required.

[0] https://forum.sublimetext.com/t/sublime-text-discord-server/...

[1] https://aur.archlinux.org/packages/sublime-text-4-dev/

>Sublime Text's changelog (https://www.sublimetext.com/3) depicts the product as essentially abandoned

Sublime Text is not abandoned. Having a glance at Sublime Text 3's update history, as well as the forums, will alleviate any such concern.

>On the other hand, the page linked says that the team is expanding.

The linked article discusses Sublime Merge, a different product.

> Sublime Text is not abandoned. Having a glance at Sublime Text 3's update history, as well as the forums, will alleviate any such concern.

Based on the history, in the last solar year, the builds have been:

  - 3211, Oct/19: 4 fixes, plus what I suppose is a functionality, for Mac
  - 3210, Sep/19: 1 fix
That's... all.

> The linked article discusses Sublime Merge, a different product.

I'm aware of it, but my question still stands, as there is no information in the typical information channels (i.e. blog, twitter).

If you write that the forums says so, I trust that, but not updating the blog and twitter (about ST specifically) is generally not a good sign.

If you have a Sublime Text 3 license there are additional beta builds available on their discord server. Information is available on their forums and website. Stop spreading such fuddy fud. Latest build was April 28:

    * Auto Complete: Ranking quality improvements
    * Auto Complete: Added auto_complete_use_history setting to control if previous choices are automatically selected
    * Added additional settings to control the status bar: show_sidebar_button, show_indentation and show_syntax
    * Added relative line numbers, controlled by the relative_line_numbers setting
    * Color Schemes: Added support for the underline font style
    * Color Schemes: Added new property, inactive_selection_border
    * Added setting hide_pointer_while_typing
    * Console now uses Python syntax highlighting by default
    * Windows, Linux: Added Shift+F10 key binding to open the context menu
    * Fixed folder dragging in the sidebar
    * Further improvements in layout preservation when programmatically editing preferences
    * API: View.add_regions() calls that add an underline now have that underline applied to whitespace characters
    * API: Added sublime.INHIBIT_REORDER
    * API: Window.new_html_sheet() now accepts the sublime.ADD_TO_SELECTION flag
    * API: Window.new_html_sheet() no longer accepts cmd and args parameters
    * API: Fixed a regression in View.split_by_newlines()

>Based on the history, in the last solar year, the builds have been:


> - 3211, Oct/19: 4 fixes, plus what I suppose is a functionality, for Mac

> - 3210, Sep/19: 1 fix


>That's... all.

I don't see what you're trying to point out. What about bug-fix updates points to the software being abandoned? I'd argue that it demonstrates the exact opposite.

>I'm aware of it, but my question still stands

What question?

>not updating the blog and twitter (about ST specifically) is generally not a good sign.

Perhaps; perhaps not. You may be putting too much weight in their "social" presence instead of looking into the factors that matter most such as ongoing support and development. The team behind Sublime * is tiny compared to other software enjoying similar popularity. I suspect effort is primarily focused on development of the next major version of Sublime Text, the ongoing support of Sublime Text 3, Sublime Merge's newest release, and other projects we don't know about. I can understand a lull in Twitter/blog/etc. presence.

This is exactly what people thought with ST3: there were years and years when it was in beta with radio silence, and then, all of a sudden, it came out in a production release and it was awesome as expected. I think that's just how they roll.

When you say look at the update history, there have been no updates, even very minor, in 9 months. While not abandoned, that does feel a little concerning.

>When you say look at the update history, there have been no updates, even very minor, in 9 months. While not abandoned, that does feel a little concerning.

Why is that concerning? I'm no longer on top of Sublime Text's outstanding bugs as I was some time ago. Is the backlog of issues/severity such that an increased release cadence is necessary?

maybe it's pretty much feature complete? (and they seem to be focused on sublime merge)

what else do you think it needs? keeping in mind that it's a text editor, not an IDE

well, for example, on the file panel, not all the desktop events are caught. that means that you can open the pop-up menu _only_ with the mouse.

then, the last time I had a look at the plugin API, again, there were significant limits in the events systems (I don't remember which; I think they were again related to the tree panel).

they are quite active on their github issue tracker. i've posted twice about minor bugs; both bugs were fixed within a week or two.

I was mildly impressed by smerge when it came out, and it looks a lot better now!

I have a different porcelain which I prefer, but if i wasn't an emacs person (and thus, a magit person), i'd be willing to pay for this just like i once bought sublime text.

Nice to see a native app keep chugging along.

Downloaded and played with this a little, and I like it so far. Theres a button in SourceTree that I like to change the lines of context 1/3/6/12/25/50/100 etc. I find myself occasionally changing this on a commit level. Is there a quick way to do this in Sublime Merge?

Not quite what you're asking for, but you can drag the top/bottom borders of a given hunk to expose more of the context on a case-by-case basis.

Thanks, I was wondering if there was a way to change the default.

Does it support three-way merge? I still use BeyondCompare for this, and it's a killer feature whenever I have to rebase my PR against the latest upstream HEAD. Can't live without it, and I consider it an essential feature for a paid product.

Yes it does. It gets used for resolving merge conflicts, but it can also be used as a separate tool: https://www.sublimemerge.com/docs/command_line

I've been using kdiff3 for like 15 years by now: https://sourceforge.net/projects/kdiff3/

and still feel most at home there.

Why would I use sublime merge over vscode with extensions?

Sublime Merge is a standalone app that isn't really all that integrated with Sublime Text, despite the name and coming from the same company. In other words, using Sublime Merge with VSCode is roughly the same as using it with Sublime Text. It's simply a great git client.

I'd guess the biggest reason to use Sublime Merge over a VSCode extension is that it's a small, very fast, native app. I've used it before when wanting to, e.g., search my git history for a change I'd made (IIRC a function name I remembered but which was no longer in the codebase). It's just snappier in general than VSCode. But I use command line git rather than any VSCode integration, so for the most part that serves me well enough anyway.

The killer feature for me is almost-instant launch from the command line. I usually use the git CLI. But if I want to inspect the repository history or view a complex diff, then I can quickly run `smerge .` to get a graphical client.

I like to have all my git repos in one place. I use VS code for frontend and JetBrains for backend.

Speed and elegance.

Reversed the question. Why should I move to vscode when sublime exists

As I wrote in another comment, ST's development essentially halted more than an year ago.

My last straw has been having to use a specialized plugin to workaround a bug that hasn't been fixed in years.

There may be platform reasons not use VSC - I don't argue about those - but as things are, VSC is an immensely more polished product.

>As I wrote in another comment, ST's development essentially halted more than an year ago.

Says who? Most products don't have public releases of anything and don't give details for their internal development but once a year or once every 1.5/2 years.

Sublime Text has been this way since 2010 at least, and yet, from release 1.0 we eventually got to release 3.2 (with 4.0 in behind the scenes dev). Every time and then, a new release / fix lands.

>As I wrote in another comment, ST's development essentially halted more than an year ago.

Sublime Text development is not halted. What has given you the idea that it halted more than a year ago?

>My last straw was being forced to use a plugin to fix a bug that hasn't been fixed in years.

What's the bug?

> Sublime Text development is not halted. What has given you the idea that it halted more than a year ago?

(As I wrote in another comment) The typical information channels (blog, twitter, development builds page) don't say anything.

I take the point that one can gather from the forum, the fact that there is ongoing development, but I think it's reasonable to be at least perplexed when a company is not active on the standard information channels, while at the same time expanding the team on a different product.

> What's the bug?

Files navigation panel goes out of whack, while switching between the editor and it with the keyboard; any keyboard-only user will experience it (although ST can't be used keyboard only, due to the inability to open a popup in the file panel via keyboard).

Somebody opened a bug open a long time ago, and somebody else wrote a snippet (a plugin, I suppose) to use as workaround.

There hasn't been a stable build since October. The user is complaining about the Sublime development cycle, which is unlike most companies today. Sublime frequently goes 6-12 months without an update (Sublime Merge was a few days from 1 year between updates), but there is a lot of development happening in the background and test builds do exist.

The Sublime team seems to prefers 1 big and stable update vs 12 smaller and possibly less stable updates. It has its advantages and disadvantages.

Regardless, Merge is still the best Git GUI out there and this update just made it better. And Text is my favorite simple text editor out there (though I do prefer using a full IDE for actual development)

They are actively working on Sublime Text 4, but I had the same impression when I checked their website.

They probably don't want people to stop buying ST3 while they're waiting for ST4...

Their license has changed as of last year. You no longer purchase ST3, but a license to ST for 3 years (including updating to ST4), and then freezing on that version of ST when the 3 years are up. They aren't selling software to users with ill intent.

That seems like an aweful model. If ST4 still takes another 4-5 Years until a proper stabel, I'm basically unable to update with a licence bougth today, despite the high price?

That's not a reversed question, it's a completely new one. It was about sublime merge not sublime text as you appear to have switched it to.

Unless you're seriously suggesting that someone would stop using the Sublime Merge tool just to use vscode IDE for the sole function of git repo management.

In which case, yeah, don't do that

Does anybody know if this, or can suggest a GUI client that supports "split-diff" similar to what GitHub offers?

I tried a bunch of clients, including "Sublime Merge", but none of them seem to have what to me, seems like a better way of looking at diffs where the changes are interspersed across an entire function.

... maybe I'm not looking for the right "name"? any pointers in that direction would help as well.

In Sublime Merge under Preferences > Layout you can change the Diff Layout. By default we use Auto, which switches between Inline (unified) and Side-by-side (split) based on how large the window is. You can pin it to a specific size if you prefer that style.

ah! how did I miss this option! thanks :)

OSX only, but GitUp is the only GUI got tool I have used that feels like it actually is helpful for a git workflow. I _really_ wish it worked on Linux, but it's basically not possible without an entire rewrite.


I'm a big fan of GitKraken


Wondering why this was downvoted, I'm also an user of GitKraken (for a while now), their diff layout and keyboard accessibility is amazing to help maximize work speed.

If you're on macOS, there's Kaleidoscope https://www.kaleidoscopeapp.com/

Maybe Meld: http://meldmerge.org/

The google search that may help would be for "merge tools".

What UI library does this use? Looks great. Is it a web technology?

It's a custom, proprietary UI library built on Skia. It would be really cool if they released it as open-source, but it's also their competitive advantage.

Just to clarify, we use very little of Skia these days - we draw some basic primitives with it (i.e. rounded rectangles, pngs drawn to a rect) in software rendering mode only. With the new GPU renderer we don't use Skia at all.

Huh! That's really cool. I'm glad that you invested in the UI toolkit---that distinguishes Sublime products from other text editors and Git GUIs by a wide margin.

The new OpenGL rendering path actually doesn't touch Skia at all. It's pretty much custom all the way down to the system APIs.

I really like being able to selectively hide branches, it's a cool git history exploration tool

are there other git gui's which can do that? (surely there are, but I don't know them)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact