I used Git on the command line exclusively for many years and occasionally tried the built-in Git tools for various editors as well as GitHub Desktop, but I never felt they were a lift in usability over the CLI or very pleasant to use. That was until I tried Sublime Merge on a whim. One thing I like is how keyboard oriented most of it is, and how it maps quite closely to CLI commands. If I want to commit I open the command palette with command+p and then fuzzy-search for commit with “co…” or “cm” or whatever you like, and it brings up the suggested commands which I can select with enter. And beyond that I like the generally attractive styling which makes viewing diffs and searching commit history (command+f, fuzzy find “contents:”, type what you want to search for) pleasant. It’s also totally snappy in most cases, even with multiple tabs for repos open — the only time I’ve seen it slow down was opening Unreal Engine, and that was at least a year ago so they may have made improvements on that. I use it every day and I am quite pleased with it.
> If I want to commit I open the command palette with command+p and then fuzzy-search for commit with “co…” or “cm” or whatever you like, and it brings up the suggested commands which I can select with enter.
cm is exactly how I think of commit, but I use it as a custom command on the cli.
I use my cm command like:
cm “Small refactoring of quux and baz”
and it runs
git commit -m “Small refactoring of quux and baz”
Similarly I have other two letter commands for all of the other git operations I most frequently use. (I.e for almost all of the ones I use day to day.)
Have you tried any TUI tools? I'm super happy with tig for visualizing history, diffs, staging chunks and staged/unchanged changes. For anything else I just use the git CLI commands.
Sublime Merge is cough sublimely good at performing 3-way merges.
I don't like it as much as a generic git frontend (nothing beats the command line once you're used to it, but for 3-way merges, it's absolutely perfect and I have yet to see anything better.
Another very good tool for 3-way merges is meld, but the macOS port (where I do most of my development work on) is not very good, mostly because the GTK macOS port isn't very good.
I tried Meld for 3-way merges and while it seemed ok I prefer P4Merge. It's free, but not open source. If I'm using Jetbrains tools though, I'll always use the built in merge tool as it's the most intuitive to use in my experience.
Maybe they improved, I actually haven’t tried for years. I mostly would click blame on a line in sublime text and leave it at that. I just never felt smerge was good at digging around history. Maybe I’ll give it another try
Using Sublime Merge for over a year now after using Magit/Emacs mostly (and git command line for years before that).
What I like about Sublime Merge is its performance and the stage/unstage UI/UX is intuitive and fast backed by a competent text editor engine, similar to what I liked about Magit. Having multiple repositories open in a tab interface is also nice.
What you have to keep in mind is that Sublime Merge also includes a competent merge tool (hence the name). Sometimes we have to do more complex merges and Sublime Merge does this in an intuitive and integrated way, which would be a completely separate application in many other popular Git front-ends. Therefore the price is IMHO fair and justified. I can recommend giving it a try for a couple of weeks.
Ok for context:
You got st3 with a license, and maybe plugins.
St3 got regular updates to new minor versions.
They brought the st4 update like the other minor version updates.
Destroyed the whole st ide setup (plugins didn't work for st4)
And st3 licence can't be used for st4 (you get the st4 licence if you bought st3 some months before)
If I use st for private stuff that would be annoying, but as I use it for my work that was money.
Sorry that happened to you. We've since improved our updater to avoid this happening again, but your loss of trust is understandable. Hopefully downgrading back to ST3 was not too big of a hassle.
ST4 has full backwards compatibility for plugins, keeping the same python 3.3 ST3 shipped with, so I'm surprised your setup broke. ST3 licenses were also fully transitioned to ST4, so any license less than 3 years old covered the initial ST4 release.
Thank you for making such good software and being decent people. Sublime Text is my go-to example of a small team making quality software that puts people first. I'm very grateful.
(I'm working from memory, so I may bungle details)
Speaking personally, I enjoyed Sublime Text, so I was happy to pay for a license back in the day ($70 if I recall?). When v2 came out, I paid to upgrade, and again with v3. When v4 was released, I paid yet again, but after a period of normal use (a year if I recall), I got a popup informing me I'd need to pay again to keep using ST4. I felt like I'd been hoodwinked--they had sneakily switched the license from perpetual to subscription.
I assume that the switch to subscription licensing was disclosed somewhere in the small print that nobody reads. I feel that the concealment was deliberate (I suspect they'll disagree, but you know the old chestnut about the relative volume of actions and words). At that point I'd been using v4 for a year, and rolling back to v3 with my previously perpetual license would be a big hassle, and obviously I'd lose functionality.
I would have happily kept paying for upgrades, but now I doubt I'll ever spend money with those folks again.
We only have subscriptions for businesses (there's a whole separate purchase process), regular licenses cover 3 years worth of updates and are perpetual. That's a similar time period between license purchases to before ST4. We announced this change at the top of our ST4 release post and describe it when you purchase a license.
If your regular license only covered a year of updates that's certainly a bug and I suggest contacting sales@sublimetext.com so we can sort that out.
No we don't have automatic updates. The issue was that our updater did not warn customers that their license would not cover the newer version before updating, so those with more than 3 year old licenses were met with a "LICENSE UPGRADE REQUIRED" in the title bar. Sorry to those who were affected by this, the loss of trust is understandable.
We've since added that functionality to the updater. We also don't nag paying customers regardless of whether their license applies.
`git add` can be quite slow when handling large files, in large repositories, with a large index or on slow platforms. For instance this optimization in git brought the runtime of `git add .` on Windows with 200k files from 6s to 3s: https://github.com/git/git/commit/d1664e73ad96aa08735bf81d48....
100ms let alone 3s is much too long a wait, so Sublime Merge predicts the outcome of staging and presents that immediately. This made a noticeable improvement to responsiveness even on small repositories under Linux.
So, "predicts outcome", what does that even mean? I know the outcome of `git add` is... the file being added. And it has to run the command in the end anyway.
It means that the outcome is shown immediately on the next rendered frame instead of waiting for the command to complete, then reading the index and updating the UI from that. You knowing the outcome is exactly the point; the UI needs to be responsive immediately because you're not waiting to find out what happens.
As an example: Lets say it takes 200ms to run `git add` and then another 100ms to read the index; you want to stage 3 files. You click the first stage button, nothing happens and you move to click the next stage button, now the UI updates and removes that first file shifting what you're about to click on. This behavior was extremely annoying when it came up in testing.
With prediction here's what happens instead: You click the first stage button, immediately the UI updates removing that file, you move to click the 2nd which again is immediately removed. Transparently in the background `git add` is run and we confirm the end the result is as predicted.
I liked Sublime Merge when I used it a few years ago, mainly because it's available on Linux. There were some things about the UI that were bugging me however. Nowadays I'm pretty happy with Fork (available for Windows & macOS).
I dislike that too, but one reason is that they're actually using the platform native UI toolkits (making it wonderfully well integrated and snappy). Adding another platform would be a lot of work and the authors don't believe that Linux even has a clear platform native UI toolkit (though imo GTK would be a safe choice).
I have been using Sublime Merge for a while now, and I find it very useful.
I am a visual and spatial type, so I find the the way the information is organised there invaluable. I know I lose points for not being an ultimate shell dweller, but the experience just does not compare.
The only downside is that sometimes you cannot be sure which commands it will execute for a given functionality, and to do more specific things you have to do them manually. I guess this is unavoidable.
> The only downside is that sometimes you cannot be sure which commands it will execute for a given functionality
I'm curious if you have a specific example of this? We've put a fair amount of effort into having the same nomenclature as git and add tooltips that contain the command itself where possible.
Same. I’ve been using it a while and I enjoy it a lot. I have to admit that I haven’t purchased it yet because $100 is hard to justify with so many perfectly good free alternatives, but if it was cheaper I definitely would.
I've been using Sublime Merge since it was first announced (and Sublime Text since ST2 I think). Absolutely love the experience. It's less a Git GUI and more just the CLI displayed in a well-designed GUI, if that makes sense. It's not reinventing anything, just making it easier to keep on top of commits and what your current changes are. What I find nice is that unlike many of the other GUI options, Sublime never hides what it's doing. Anytime you are about to run a Git command, they show you it and give you the option to customize it. And you can run manual commands at any time with their command palette.
I don't mind the Git CLI, but I don't enjoy using it. It feels like I'm doing extra work and I'm not necessarily on top of the changes I've made. But Sublime gives me that while also not straying far from the CLI. It's the best client I've come across and well worth the license I paid for it.
When Sublime Merge was initially released I liked it a lot. Mostly because of it's snappy speed (like Sublime Text). But since a year or so I'm using lazygit (https://github.com/jesseduffield/lazygit), which at least for me is the best git tool ever.
A lot of people on HN don't like it when you share your opinion about how an open-source developer monetizes their work. For what it's worth, I agree. I feel like it would be a lot less discomforting if the ads were simply below the actual description of the projects.
Long time Sublime user, both Sublime Text and Sublime Merge. I started back with ST2, ST3 and I have ST4 and have use Merge since it was released. These days I now mostly use nvim+lazyvim for coding but I do continue to use Sublime Merge as my primary git environment.
@ben-schaaf I'd love to see tree-sitter+LSP come to Sublime Text, as well as telescope+rg+fzf style fuzzy search. I find the lazyvim+telescope integration for finding files, finding buffers, looking for symbol references and general grepping with the live preview just fantastic.
One of the things I don't like about nvim+lazyvim is that I miss the IDE (workspace) aspect of ST, in that I have a window open per active project in Sublime. I use Neovide for nvim, but it really only lets you have one GUI window (I don't like to use Kitty/terminal windows for nvim because I can't cycle easily through them without mixing through other terminal stuff).
There's well supported LSP plugins for Sublime Text, and also a working tree sitter plugin. If that's what you're looking for I suggest giving those a try.
I used ST since v2, and SM since the release. Sublime Text used to be my IDE for Python/C++/Go development. But later I switched to IntelliJ, and now Sublime Text is naked/pluginless editor for me, that I am ok to pay 100 every 3 years. I love the product.
I use Sublime Merge only as a diff tool, or a review tool before the commit. Love it as well.
I'm using Sublime Text since shortly before 2.0 and Sublime Merge since day one. Yet, I'm slowly losing interest in ST because of lacking language integrations and probably won't do any future paid upgrades. However, Sublime Merge is still essential for me and a no-brainer.
This looks like a beautiful tool, but I'm not sure why I would use this instead of the Git integration in VSCode, and the CLI in VSCode's terminal? I can't really imagine using a workflow that would force me to use a different GUI for commits, diffs, merges, etc.
Considering how much competition is in this space, a comparison or a page to help define its strengths would be useful.
Both against standalone tools such as Git-Fork, and built it tools such as VSCode Git [for the majority of the world that uses VSCode over Sublime-Text].
Not doing much dev work at the moment... In the rare event I need to do some file comparisons or git commits I use meld. How does it compare to more novel tools like this?
Any tools that consider the syntactic structure of code for diff/merging?
Here I am still using my trusty old GitX for commits, it hasn't been updated in about 10 years :) maybe I should stop being such a tight bastard and make the jump.
I forgot I had this installed and purchased as I tend to just use the cli for everything and have never really used a GUI. I'll try it out for some trickier merges.
The GUI framework we use for ST and SM is fully custom. We use GTK, Cocoa and Win32 for platform integration and custom software/OpenGL rendering (with a little help from Skis).
t's interface is unstable, undocumented and it tightly integrates with the rest of our codebase; even if it was open source it would not be usable to anyone.
I used to be a fan of the Sublime tools. But the complete lack of updates over a reasonable timescale have led me to move on to more supported platforms. I like the concept of a small team of developers providing a good tool. But the reality often means that you don't see any worthwhile upgrades. And I realize I'm commenting on HN, a place where the majority of people seem to have abandoned the hacker spirit and leaned more into curmudgeon aesthetics instead. The general sentiment here seems to be far more of don't try to innovate. Just do what we expect you to in the way we expect you to which matches how we would have built this tool 20 years ago.
> Cloud? Why? You can literally do anything on a VPS with Postgres!
> AI? Not on my watch! I can't imagine a tool that does more than VIM two decades ago!
> Javascript?! What a shit language. Everything should be written in Java or C++.
What is a reasonable timescale? They last released an update for Sublime Merge in April. What features are you missing that they haven't added? What bugs are present that need to be fixed?
> Cloud? Why? You can literally do anything on a VPS with Postgres!
In my case I don't want to maintain a server, but a web service, hence I'd prefer cloud most of the time.
> AI? Not on my watch! I can't imagine a tool that does more than VIM two decades ago!
There are a few instances where it's useful, but if you abuse the use of AI (copilot and co), then you will most likely not understand the code the same way if you were the one that wrote it, even if it is a 1:1 match.
> Javascript?! What a shit language.
Indeed Javascript is bad language, but it's hard to avoid if you work on the frontend, WASM is not yet there to be an alternative for most use cases.
> Everything should be written in Java or C++.
I would say at this point in time you will most likely to get away with Go (instead of Java) or Rust (instead of C++).