12 ms·
Hi HN - Jon Skinner here, I made Sublime Text and Sublime Merge, alongside the rest of the Sublime HQ programming team - Will, Dylan and Benjamin. Let me know i
by jskinner 8y ago
Hi HN - Jon Skinner here, I made Sublime Text and Sublime Merge, alongside the rest of the Sublime HQ programming team - Will, Dylan and Benjamin. Let me know if you have any questions!
Edit: there's also the announcement blog post, at https://www.sublimetext.com/blog/articles/sublime-merge https://www.sublimetext.com/blog/articles/sublime-merge
- mmjaa 8y agoHi Jon - great work - I've been a happy registered user of ST for years and I find it a wonderful tool in my productivity kit - so thanks! Will there be a home-brew cask for us on MacOS, by any chance?
- nimeshneema 8y agoSee this comment: https://news.ycombinator.com/item?id=18034241 https://news.ycombinator.com/item?id=18034241
- adonese 8y agoI think i'll like this tool a LOT! Thanks for the great work! No single text editor in my life i love as much as sublime!
- jazzyjackson 8y agoAllo, looking forward to trying it. One question for you, could you compare it to other standalone git merge options? What don't the competitors do that you do? But PS, you have a broken link on the /download page <a href="/https://www.sublimehq.com/store">purchased</a> Of course that leading slash will break things -- you could drop the whole `/https:` too.
- jskinner 8y agoSublime Merge is a Git client, and I'd list the main advantages over the alternatives as performance, and UI polish in general. For example, when you stage a file in Sublime Merge, we internally predict the resulting change to the repository, so the changes are reflected in the UI immediately, while the operation is actually happening asynchronously. In contrast, other Git clients can take seconds before being able to stage a second file.
- coldtea 8y agoTotally appreciate your ST work Jon (main driver for 6+ years, used Vim before for 15+ years). Will definitely try Merge. Does it offer any integration with Sublime itself (e.g. if someone has a license for both)?
- jskinner 8y agoThanks for the kind words! There's some basic integration now, and we'll be adding more in the future. Right now, Sublime Merge will pickup installed Sublime Text packages (e.g., for syntax highlighting), and will also find Sublime Text when you choose Open in Editor from within Merge (this can be customised to something else though, of course).
- coldtea 8y agoThanks, the fact that they can share packages (and eventually maybe themes) sounds great. If it's possible, I'd also like some auto-sync mode (e.g. when a folder with a git repo is opened/active in sublime text, have sublime merge automatically switch to that). Eventually, perhaps Merge can just be an extra tab (or something similar), inside ST, for people with both licenses.
- nicoburns 8y agoIt would be cool to have some integration going the other way. In particular I would love: 1. If Sublime Text could detect when a directory is a git root directory, and present a button to "open in sublime merge" (my sublime projects often span multiple git repos, so detection on a folder by folder basis would be key). The ability to configure this to use another git client would make sense, although personally Sublime Merge looks fantastic. 2. A create commit action accessible from the Command-Shift-P dialog. I imagine Sublime Merge launches pretty quickly, so this would be pretty nice as I wouldn't have to keep it open: I could just let Sublime Text manage my "workspace". I currently commit using the terminal (+ Micro Editor), but this could be even better. Note: I notice that there is no "Stage All" button. That would be useful... Aside: IMO managing workspaces/projects is a weakness of Sublime Text atm. I have tendency to move directories around which makes managing projects a bit awkward. I've resorted to opening sublime from the terminal with `cd /path/to/project/; subl .`. Not sure I have any specific suggestions for improvements, but that welcome screen in Sublime Merge sure looks nice... 2. Merge tool integration for file merging/diffing (e.g. if two files are selected in the sidebar, you could right-click > diff files, and perhaps an action on an open file could be "diff file with..."). There are plugins for Sublime Text that try to do this with two text panes, but they don't work especially well. IMO there aren't very many good diff tools, so a lightweight one that works cross-platform could be a good market to target. Thank you for Sublime Text. I've used it almost every day for work for the last 5 years and it's definitely made my life much easier!
- sideproject 8y agoWhat! You guys are based in Sydney?!?!? Never knew that. Great to see my favourite tool being built in my city! :)
- sammorrowdrums 8y agoWhat are the chances of being able to "switch mode" from Sublime text itself? What would be killer for me is to do some work, and then jump to this view to commit / review changes / pull in other changes - I appreciate that it's a very different mode, but the integration would really help. Looks great so far!
- klageveen 8y agoPretty amazing feat to enter what looks like a saturated market with a product that has a a unique combination of features, is super performant and cross platform. Kudos.
- azag0 8y agoAny plans to implement interactive rebase in some way? Right now I'm heavily dependent on GitUp, where things like swapping commits or squashing them is often a matter of a single keyboard shortcut.
- jskinner 8y agoOh yes! We do have some basics in there right now, you can directly edit commit messages and squash commits without any fuss. Full interactive rebase support will be coming later.
- consto 8y agoHad a little play with it and it's looking really promising. I'm probably going to stick to the terminal for simpler stuff, but this tool will definitely help pry me away from Gitlab, and the merge conflict resolution feature looks so much better than my current workflow. I have a question, or rather a request. As a long term Sublime Text user I like to hide the menu bar which you can't seem to do in Sublime Merge. Would you consider adding this in a future release?
- jskinner 8y agoAbsolutely, I'll add it to the list.
- nateweiss 8y agoWhile you are fielding little requests, I'd personally like to be able to collapse/expand the areas in the "Location Bar" pane/drawer on the left (where branches/tags/stashes are listed). For instance, I often have a lot of local branches and would like to be able to focus on them rather than the remote branches. As it stands there isn't much vertical real estate for each of the lists, and there doesn't appear to be a way to resize/collapse them. SourceTree on Mac treats these as collapsible in an accordion-like way, which I personally like, but I'm sure there would be other good approaches too. Not a huge problem because there's the cool branch list/switcher at top center, so maybe will find myself working with the Location Bar hidden mostly.
- p0nce 8y agoThank you. I use Sublime every day, and will for the foreseeable future.
- neslinesli93 8y agoAwesome stuff, I'm loving it! I guess it's time do finally ditch GitKraken and SourceTree (: I have a couple questions: - Do you have a plan to add git flow integration? And what about interactive rebases? - Please, please, allow free users to use dark theme as well! Sublime Text license was really great, why add such a small change?
- jskinner 8y agoInteractive rebase is absolutely coming (you can already edit commit messages and squash commits). UI support for Git Flow is going to depend on user feedback. I expect we will eventually, but even if not, we will be adding a plugin API, and it would naturally be doable via that.
- the_clarence 8y agoAlso, if you can rename all these opaque commands to be more user friendly :) even if this means adding more commands, I think it’s worth it. “Rebase” should be the first victim
- jskinner 8y agoAlas, one of our key principles is to not hide or rename anything in Git, so your knowledge from using Git on the command line transfers to and from Sublime Merge.
- porker 8y agoAre UI translations possible? If so, and someone can replace "Rebase" in the translation with another word, it's possible. Bonus if the other strings contain placeholders e.g. "Interactive #{rebase|ucfirst}" to reduce the changes. Bravo Jon, SourceTree has been sucking more and more recently, and as a Windows & Mac user I'm looking forward to trying this out.
- the_clarence 8y ago
- fishtopher 8y agoHi! I love sublime and I'd love to use this too, but.. it crashes 100% of the time for me, whether I open an existing repo or create a new one. Is there a crash log or something I can send to you guys?
- levani 8y agoDo you have any plans to add a debugger GUI in sublime? Integrated git tooling and debugger is the main reason I use VS Code.
- slifin 8y ago100% this, I have to switch between multiple editors because the ergonomics of sublime are too good but it's debugger is not Trying to migrate away using spacemacs but it's not going well
- vmsp 8y agoJon, it's impressive how you deliver incredibly performant cross-platform UIs. You really should consider talking about your development and custom widget toolkit. Great job on Sublime Merge.
- interknot 8y agoEmphatically agreed. I've wanted to hear about this for years.
- mixmastamyk 8y agoI've never experienced a non-performant cross-platform UI. Well, to be honest I've heard of folks complaining about Electron apps, but are easy enough to avoid. Oh yeah and Swing was a bit sluggish… in the 90s. What am I missing?
- mixmastamyk 8y agoStill no answers but a lot of malicious downvotes.
- chipotle_coyote 8y agoAllow me to somewhat quippishly rephrase your original post: "I've never heard of badly performing cross-platform apps, except for the ones written in what's currently the most popular cross-platform toolkit and the ones written in one of the most popular cross-platform toolkits a generation ago."
- mixmastamyk 8y agoThat leaves one poor performing toolkit, that has an excuse at least. Not hard to avoid apps written in it, in any case. Qt, Wx, Java, and many others don't or no longer perform poorly. So why the surprise there is one more? Maybe some folks don't know they exist.
- boromi 8y ago
- PJRO 8y agoHi Jon, we currently use Gitkraken, which allows us to manage submodules. I can't seem to find this functionality in sublime merge, do you know if this is something you guys have thought about and if it will be released any time soon?
- jskinner 8y agoSublime Merge understands submodules, but we don't expose a UI for managing them yet. This is right near the top of our priority list though.
- hwestbrook 8y ago+1 on this. I use Tower which has really nice submodule support. In demoing Sublime Merge — if I move branches that use a different submodule or different submodule version, I get uncommitted changes, either a folder where the submodule was or commit change on submodule. Other than this it looks great!
- cwhiteley 8y agoHi Jon, the app looks great. Does it currently support GitFlow?
- sydd 8y agoLooks great! Is there any roadmap somewhere so we know what to expect in the future?
- dsego 8y agoI see you haven't used Sublime Text. No roadmap, sometimes a few years go by without any updates.
- mstade 8y agoAre you also moving Sublime Text to a subscription license for businesses?
- ryan-allen 8y agoHello fellow Sydney-sider! This looks amazing! If this is half as snappy as Sublime Text I reckon it'll be a winner! Good job Sublime Team! :)
- owaislone 8y agoCongratulations for launching another promising product Jon. I tried it on Linux and couldn't figure out a way to scale the interface on a higher resolution screen. Increasing the font size only scales half of the UI. Is there any hidden setting to scale or zoom in/out?
- maxymoos 8y agoThere is indeed: I tried the same way as in Sublime Text and hurrah, it works. Go to Preferences > Edit Settings, then add a new setting to the dict: `"dpi_scale": 2.0` (or whatever float value works for you) I think you need to restart Sublime Merge then.
- jskinner 8y agoYou can use the dpi_scale setting for this in Sublime Merge and Sublime Text, but you'll have to restart after changing it. You'll need to edit the JSON settings directly for this (via Preferences/Edit Settings), and then set dpi_scale to something reasonable, such as 1.25
- owaislone 8y agoThanks. That worked out perfectly!
- jhasse 8y agoAny plans to switch from Gtk+ 2 to 3 on Linux? Scaling of native dialogs isn't very good with HiDPI displays atm :/
- jskinner 8y agoI built a prototype of it at one point, but was running into performance issues trying to get pixels onto the screen. I'd like to revisit this, as the hidpi experience really is a lot better with GTK3.
- openbasic 8y agoWait... you use GTK on Linux? For what, exactly?
- guessmyname 8y ago> Wait... you use GTK on Linux? For what, exactly? SublimeText uses "Skia Graphics Library" to draw the entire user interface. However, you still need to write Cocoa for macOS components and GTK for Linux. Many cross-platform programs do the same, developers use a high-level library to render the overall interface, but underneath they are still using the native graphics libraries offered by the operating system where the program is running in, in this example, macOS and Linux. You can still do a lot with Skia alone, but eventually you'll find yourself writing some platform-specific custom code.
- deleted 8y ago[deleted]
- jskinner 8y agoMenus and dialogs (open, save, error, etc) :)
- alex_suzuki 8y agoHi Jon, amazing work! I am happy to try this out as I'm starting to get annoyed with SourceTree, it often hangs on me. Is there a way to delete a local tracking branch and its corresponding branch on the origin in one operation? I often use this when cleaning up old branches that have been merged into the main development lines.
- micnil 8y agoGreat tool! Is it possible to get more than 3 lines of context in the diff view? Tried setting: git config diff.context 20 but this had no effect.
- vladdanilov 8y agoNice to see you're using the same animation technique [1]. MP4 could not possibly provide this level of quality/size (~150KB per animation). Pngcrush is rather limiting though. I could compress the PNG textures by ~8% more with optimage [2] (I'm the author). And for newer browsers, serving the textures as brotli-compressed BMPs would actually make them >30% smaller (probably more with filtered but uncompressed PNGs). [1] http://www.sublimetext.com/~jps/animated_gifs_the_hard_way.html http://www.sublimetext.com/~jps/animated_gifs_the_hard_way.h... [2] https://getoptimage.com https://getoptimage.com
- wbond 8y agoWe built the animations using a slightly enhanced version of anim_encoder, which I currently have online at https://github.com/wbond/anim_encoder https://github.com/wbond/anim_encoder. One of the changes was adding pngquant which helped compress the images a bunch beyond pngcrush.
- vladdanilov 8y agoYou will get better results by swapping the two. Pngquant stops at color quantization. Also, most of those savings came from near-optimal Deflate compression.
- wbond 8y agoThanks for the tip!
- guthriej 8y agoI often commit in a detached HEAD state (primarily because we're using Gerrit, and git-review sort of encourages it). Sublime Merge won't let me commit without being on a branch. Is there any way to get around this?
- jskinner 8y agoThere isn't right now, but there will be a new build out soon that will work with this.
- mescalito 8y agoLooks very nice! Two things I noticed right out on a projet: - It doesn't seem to be picking up my global .gitignore file. I see untracked changes of something that should be ignored. It doesn't appear on any other git client nor `git status`. - Please add regex to the search :)
- antaviana 8y agoI notice that seats can be changed any time in a Business subscription. Is the end of subscription recalculated each time you add or remove a seat?
- jskinner 8y agoThe billing period isn't changed, instead a pro-rated amount is changed. For example, if you add a seat half way through the billing period, you'll be changed half the normal amount for it. Reducing seats will result in a pro-rated credit on your next billing cycle.
- faitswulff 8y agoThe search functionality looks great - I didn't even know that was an issue because I generally know how to dig through commits, but having a simple and fast UI for doing it might tip it over into the "must have" category. EDIT - read the blog post and idly wondering if you would ever consider licensing Sublime's UI engine?
- georgehaake 8y agoThank you for the new cool tool. I'm hoping you could somewhat detail your custom UI toolkit used in these apps as they are consistently fast and uniform across platforms?
- throwaway427 8y agoHi Jon, One feature that's missing from most of the git clients I use is the ability to do "branch1...branch2" diffs, ie, diff two branches from a common starting point but only show the new changes in branch2. Do you think this will be possible in Sublime Merge at some point?
- wbond 8y agoIf you select two commits in the commit list, it will diff between the two. Currently there isn't a super-easy way to jump to a branch while leaving the previous one selected, but we have some ideas on enhancing some of the process of jumping around the commit list.
- marmaduke 8y agothe light UI theme is great (as is the app itself), is there something similar available for ST?
- wbond 8y agoThe light theme uses the Breakers color scheme from Sublime Text 3 for the editor controls. Many of the other colors are pulled from the Default theme in Sublime Text. This includes the colors of the commit list which is based on the side bar in ST, and the command palette.
- tombert 8y agoJust to be a bit annoying; I know a ton of people that download SublimeText and just ignore the little thing saying "Sublime is licensed software please pay", though I find that long term it does lead to them getting their employer to pay for it. Is SublimeMerge going to have a similar model? Just a sidenote, good on you for keeping SublimeText fast and optimized. There are way too many systems out there that have moved to the "put every single application ever inside a self-contained chrome". I usually recommend Sublime before I recommend Atom because of this.
- guu 8y agoIt has a similar model. Instead of the pop up you can't choose a different theme (ex: dark theme) unless you buy a license.
- yumaikas 8y agoWhere are the various options and the like documented? I'd like to add a custom command for pulling a specified branch from a remote, and given the extensibility of Sublime Text, I think there's a way to do that, but I'm not yet sure how to find it all? Also, count me as a vote for a high performance Sublime Terminal. I'd pay for that in a heartbeat.
- robin_reala 8y agoI work a lot with repos with very long line lengths (regularly up to 10k characters) and have to often check and merge multiple changes per line. I really like Git clients that can do one or all of these things: - Block a small threshold of vertical scrolling when scrolling horizontally on a trackpad to stop the current line I‘m tracking wavering up and down as I scroll. - Highlight whether there are further changes on the same line in some way (e.g. Git Fork starts a highlight at the first change and stops it at the last). - Allow some sort of merge comparison with word wrapping turned on (I‘m yet to find a client that does this). If you can get the first, and one of the second or third in, then I‘ll happily pick up a Sublime Merge licence to go with my Sublime Text one. I do understand that this isn‘t a typical merge environment, but I’m editing ebooks with long paragraphs.
- ryanmonroe 8y agoSounds like it might be easier to just write a program which inserts line breaks after periods (and one to remove them), so you can edit the books in their typical format and export to "git format" to deal with versioning/branching/etc. Although it sounds like you've been doing this for a while so there's probably some reason this wouldn't work which I don't know.
- rdco 8y agoFor your third point, maybe try out Kaleidoscope (macOS/iOS only): https://www.kaleidoscopeapp.com/ https://www.kaleidoscopeapp.com/ You can map git difftool to it to launch it from the command line.
- robin_reala 8y agoHey thanks, that actually looks really good! Will try it now.
- openbasic 8y agoDo you guys use OpenGL to render the UI widgets? Or do you use something more high-level like Skia?
- zchrykng 8y agoI almost purchased before downloading it just because of how much I trust you and your team to make high quality software, and as a way to throw more money in your direction. Been messing with it for a few minutes and it is awesome. Been looking for a good Sublime-like git tool for years.
- jskinner 8y agoThanks for the kind words!
- zyang 8y agoIs there a way to view history of a single branch?
- 1st1 8y agoJon, if you're looking for ideas what to work on next, please consider creating an email client. With fast UI & search, tree view for emails, proper support of plain text emails etc.
- jimyl 8y agoThat's definitely a brilliant idea. I wish Jon like this one.
- n42 8y agoThis is one of those things that I didn't know I needed. An email client made for power users with the speed, simplicity and flexibility of Sublime Text (and now Merge) would be the end of all of my email woes. I would pay a lot of money for this.
- arbie 8y agoAnd then they add Exchange support and the whole thing slows to a crawl.
- AsyncAwait 8y agoAgreed. I would pay quite a lot for a native email client that respects your privacy.
- codethief 8y agoI know that, in terms of UI, this is not precisely the SublimeText equivalent of an email client but have you taken a look at notmuch[0]? It basically operates on your local Maildir which you can keep in sync with your mail server by using a tool like OfflineIMAP[1]. [0] https://notmuchmail.org/ https://notmuchmail.org/ [1] http://www.offlineimap.org/ http://www.offlineimap.org/
- unhammer 8y agoOr mbsync[1] – I've found it faster and more stable than OfflineIMAP. [1] http://isync.sourceforge.net/mbsync.html http://isync.sourceforge.net/mbsync.html
- outcoldman 8y agoHey Jon! Thank for building Sublime Text and now Merge! Long time user. Question about Sublime Merge, is it possible to use smerge as a diff tool without git? Seems like it is not possible right now. Curious, if you are planning to add this in the future.
- flipgimble 8y agoThe one killer feature I'm hoping some GUI client implements is the ability to seamlessly search and filter branches by just typing the way most IDE's implement search for symbols or files. I work on large active projects that use git flow and inevitably there are dozens of branches. Sourcetree in particular is slow and painful in this scenario and I would love to replace it. Sublime Merge is looking very responsive and cleanly organized. Great job!
- explainplease 8y ago> the ability to seamlessly search and filter branches by just typing the way most IDE's implement search for symbols or files. Magit does this in Emacs, especially when used with Helm.
- davidcollantes 8y agoWould you consider adding both products (Sublime Text and Merge) in a bundle, say, at a lesser price?
- nkkollaw 8y agoWhy no love for hidpi monitors?
- jskinner 8y agoWe have hidpi support on every platform. If your dpi scale isn't being detected correctly on Linux, you can set it explicitly via the dpi_scale setting (there are instructions elsewhere in this thread)
- nkkollaw 8y agoIt's not, but I'm using both GDK_SCALE and QT_SCALE in /etc/environment.
- eridius 8y agoIs there any official channel for feedback? I just opened this on my repo and there's 3 immediate things I noticed: 1. The commit message UI sprouts a subtle 72 column marker when I put text in it, which is nice. But what it's missing is the even more subtle 50 column marker that I expect for the first line. Standard git commit style says the first line should try to be shorter than 50 chars because it's frequently shown as a summary and you don't want it truncated. Other tools like GitUp and GitX handle this nicely. 2. The diff view doesn't seem to have syntax highlighting for .swift files. I see highlighting for Tcl and Obj-C so I can confirm it's highlighting in general, but nothing for Swift. This is a rather surprising omission. 3. I can't actually commit using this app at all, because it seems to think I have no configured user details. Trying to commit pops up a dialog for me to set it either globally or locally. But I do already have it configured globally. In fact, I have it configured globally twice. I have it first in ~/.git/config, and then I also have it overridden in ~/.git/config.local, and my ~/.git/config has an [include] section that specifies `path = config.local`. I'm wondering if Sublime Merge is getting confused by that include and throwing away my entire global config?
- jskinner 8y agohttps://forum.sublimetext.com/ https://forum.sublimetext.com/ is the best place for feedback atm. 1. You can setup two rulers via adding "rulers": [50, 72] to Commit Message.sublime-settings, which is available via the Preferences menu. 2. We don't have Swift syntax highlighting out of the box, but if you have it installed for Sublime Text, we'll pick it up 3. Thanks for the report, I'll investigate
- jazoom 8y agoOn the topic of setting the user details, that UI element stretches across the entire width of the area, right up until the "Nothing to commit" button. A few times I clicked in that "empty" space to close a dropdown menu and was wondering why the "set user details" dialog popped up.
- iamgopal 8y agoAny thoughts on open sourcing cross platform ui library that you have created ? Or even a paid version ?
- desmondw 8y agoThank you for allowing scrolling past the end. Seriously.
- giancarlostoro 8y agoMy one question why was this made into it's own thing and not integrated into Sublime? I sort of would love to see Sublime have a bit more power, I can only assume it would start to consume too many resources? It'll be interesting to see what else you guys make. I really hope you consider making SublimeMail as others suggested.
- recursive 8y agoDo one thing and do it well.
- Tecuane 8y agoLooks like I have to be "that one", this time: Given there's a custom Git library in use under the hood, I don't suppose there'll be Mercurial support in the future?
- shoyer 8y ago+1 for Mercurial support. I suspect there are enough Google and Facebook engineers using Mercurial to justify basic support :).
- jazoom 8y agoHi Jon, I just tried it out and I really love it. 20MB of memory, super fast, intuitive to use. Tick, tick tick. There's just one thing I found really annoying and it's that the window doesn't remember where I snap it to (Windows). Every time I open it I have to snap it to half my display again. GitKraken (and as of a month ago, VS Code) remember where they belong.
- fizzledbits 8y agoSome feedback: I have a project containing a large (multiple MB) text file. Running Ubuntu 18.04. When there is a change to that file, Sublime Merge's UI becomes fairly unresponsive, with many actions taking multiple seconds to complete.
- cknoxrun 8y agoHello Jon, I bought Sublime Merge a few days ago and am excited to see Dark Mode, but the key does not work. I sent in an email to support but I haven't received a reply. Sorry for nagging you, I realize you are probably all busy over there, but I'm super excited about this. Sublime Merge so far is the _perfect_ git client I have been waiting for.
- sscarduzio 8y agoHi Jon! Thanks so much for this. Works amazing! I really like the look and feel of Text and Merge. What UI libraries do you use?