jskinner 6 years 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

  • vmsp 6 years ago

    Jon, 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 6 years ago

      Emphatically agreed. I've wanted to hear about this for years.

    • boromi 5 years ago

      I am interested in this too, however the team seems very secretive about this aspect of the project.

    • mixmastamyk 6 years ago

      I'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 6 years ago

        Still no answers but a lot of malicious downvotes.

        • chipotle_coyote 6 years ago

          Allow 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 6 years ago

            That 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.

  • 1st1 6 years ago

    Jon, 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.

    • n42 6 years ago

      This 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 6 years ago

        And then they add Exchange support and the whole thing slows to a crawl.

      • AsyncAwait 6 years ago

        Agreed. I would pay quite a lot for a native email client that respects your privacy.

      • bytematic 6 years ago

        Have you tried mailspring?

        • n42 6 years ago

          Mailspring looks nice. I would like the metadata to be under my control and not synced to their servers. The fact that I need to login to their machines turns me off. I'm open to running my own instance of their server. I do not like requiring "the cloud" to use my email client.

    • c-smile 6 years ago

      Sciter's author here.

      I am considering creation of EMail client, as a next step of my https://notes.sciter.com.

      The Sciter Notes resembles email client UI pretty close, so UI portion is feasible in months time frame.

      At the mean time I am doing html-notepad that has also close UI: https://sciter.com/html-notepad-new-kid-in-the-block/

      If someone knows IMAP/POP/SMTP stuff and want to join or invest into the project - please let me know.

      I believe it is finally the time to make convenient email client.

      • stevekemp 6 years ago

        > in months time frame.

        I'm going to assume you meant you could start in a month, rather than be completed in a month, because otherwise I'd like to save you some pain!

        I wrote a mail client, two actual, focussed upon the console. (Think "scriptable mutt".) Writing a mail-client is hard. Partly due to the sheer amount of bogus mails you'll get, and partly due to people having very firm beliefs about what they want.

        The user-interface is the easy part. More important is to design how you're going to work - Originally I allowed something similar to google's tagging, so you could "open a folder" which contained mail from multiple Maildir collections. It was not a success.

        Using a database to store your state is a cheap alternative, but risks issues getting outdated if you ever interact with the mail outside your program. You either have to force an "indexing" step - like notmuch does - or scan the filesystem tree. Neither of those approaches are great, for obvious reasons.

        (Also God help you if you want to work with remote IMAP servers. Standards? What are they!)

      • johntash 6 years ago

        I only recently learned about sciter, and was pretty excited to start using it on a personal project. Thanks for that!

        I'm not exactly an expert on imap/pop/smtp, but I'd potentially be interested in helping depending on what your plans are for it. Honestly I'd be happy to help with any new privacy-focused e-mail client that has a convenient ui.

    • jimyl 6 years ago

      That's definitely a brilliant idea. I wish Jon like this one.

  • zchrykng 6 years ago

    I 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 6 years ago

      Thanks for the kind words!

  • coldtea 6 years ago

    Totally 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 6 years ago

      Thanks 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).

      • nicoburns 6 years ago

        It 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!

        • jskinner 6 years ago

          We'll 100% be adding integration in that direction too. A new build of Sublime Text shouldn't be too far off, there are some nice thing's that we've added into Sublime Merge (e.g., an update theme system), that I want to roll into Sublime Text.

          With regards to Stage All, we don't have a button, but we do have a key binding: Command+Shift+A to stage all Modified files, and then press it a second time to stage all Untracked files, if desired.

          • kemayo 6 years ago

            Speaking as the sublime-text-git person, something with official deeper integration would honestly be appreciated. There's a few common UI requests which something official would probably pick off as low-hanging-fruit but which are basically impossible with the current API. :D

          • gmandx 6 years ago

            Just asking software engineering perspective, would be better to have the code that integrates Sublime Text <-> Sublime Merge as plugins? As in, the same Python plugin system that ST3 offers today?

        • gbersac 6 years ago

          This a million time. With VSCode being more popular than sublime text now, not having first class git integration just after installing sublime text is a serious reason not to use it.

          • marmaduke 6 years ago

            SublimeGit?

            • coldtea 6 years ago

              Yeah, but actually integrated...

      • coldtea 6 years ago

        Thanks, 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.

  • vladdanilov 6 years ago

    Nice 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.h...

    [2] https://getoptimage.com

    • wbond 6 years ago

      We built the animations using a slightly enhanced version of anim_encoder, which I currently have online at https://github.com/wbond/anim_encoder. One of the changes was adding pngquant which helped compress the images a bunch beyond pngcrush.

      • vladdanilov 6 years ago

        You 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 6 years ago

          Thanks for the tip!

  • eridius 6 years ago

    Is 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 6 years ago

      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 6 years ago

        On 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.

  • mescalito 6 years ago

    Looks 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 :)

  • guthriej 6 years ago

    I 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 6 years ago

      There isn't right now, but there will be a new build out soon that will work with this.

  • faitswulff 6 years ago

    The 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?

  • robin_reala 6 years ago

    I 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.

    • rdco 6 years ago

      For your third point, maybe try out Kaleidoscope (macOS/iOS only):

      https://www.kaleidoscopeapp.com/

      You can map git difftool to it to launch it from the command line.

      • robin_reala 6 years ago

        Hey thanks, that actually looks really good! Will try it now.

    • ryanmonroe 6 years ago

      Sounds 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.

  • levani 6 years ago

    Do 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 6 years ago

      100% 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

  • outcoldman 6 years ago

    Hey 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.

  • consto 6 years ago

    Had 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 6 years ago

      Absolutely, I'll add it to the list.

      • nateweiss 6 years ago

        While 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.

  • PJRO 6 years ago

    Hi 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 6 years ago

      Sublime 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 6 years 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!

  • jhasse 6 years ago

    Any plans to switch from Gtk+ 2 to 3 on Linux? Scaling of native dialogs isn't very good with HiDPI displays atm :/

    • jskinner 6 years ago

      I 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 6 years ago

        Wait... you use GTK on Linux? For what, exactly?

        • guessmyname 6 years 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.

        • jskinner 6 years ago

          Menus and dialogs (open, save, error, etc) :)

  • sammorrowdrums 6 years ago

    What 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!

  • neslinesli93 6 years ago

    Awesome 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 6 years ago

      Interactive 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 6 years ago

        Also, 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 6 years ago

          Alas, 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 6 years ago

            Are 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 6 years ago

              There are so many types of very different rebase that I don’t think a simple translation would simplify the flow

          • the_clarence 6 years ago

            Fair enough, maybe think of this as an optional feature for the future :) you must be really good with git but most people need to google how to do something everytime they want to do something more complicated then a merge

            • alexeldeib 6 years ago

              Personally, I believe letting every UI or toolchain compatible with git settle on their own phraseology for identical operations will lead to more issues than we currently have. Git is definitely complex, flags unclear, and commands awkward from time to time. Now, imagine trying to figure out the meaning of commands when they don't even translate equivalently across tooling? Sounds like a nightmare to me. I appreciate the effort to stay consistent with git itself.

      • boundlessdreamz 6 years ago

        How do you squash commits?

        • jskinner 6 years ago

          Right click a commit, and it's under the Edit Commit sub-menu

      • ochenvoysim 6 years ago

        I have to pay for a dark theme? seriously? You should sell features like in-app-purchases then. $1.99 for this, $.99 for that, etc. $80, $99.... man your software is really really good, but when there's free competitors that are on par w/yours, those prices are steep imo. I know you've heard all this before... guess the hundred dollar dark theme got me

        • jazoom 6 years ago

          I might be inclined to agree with you, but it seems to me it's not a $99 dark theme as much as it is an unrestricted trial version that you should buy for $99 even if you continue using it with the light theme.

          I think it's actually good of the developers not to impose DRM, but it seems that confused you into thinking this is free software?

    • olalonde 6 years ago

      > Do you have a plan to add git flow integration?

      What does that mean? Isn't git flow just a branching model?

      • hannasanarion 6 years ago

        Yes, but one that's popular enough for there to be special commands for it in most git clients, including the one in the ubuntu repos.

        git flow init = git init; git branch develop; git checkout develop; ```

        ``` git flow feature start add login page = git branch develop feature/add-login-page; git checkout feature/add-login-page; ```

        ``` git flow feature finish = git checkout develop; git merge develop feature/add-login-page; git branch -d feature/add-login-page; ```

  • sideproject 6 years ago

    What! You guys are based in Sydney?!?!? Never knew that. Great to see my favourite tool being built in my city! :)

  • tombert 6 years ago

    Just 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 6 years ago

      It has a similar model. Instead of the pop up you can't choose a different theme (ex: dark theme) unless you buy a license.

  • Tecuane 6 years ago

    Looks 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 6 years ago

      +1 for Mercurial support. I suspect there are enough Google and Facebook engineers using Mercurial to justify basic support :).

  • klageveen 6 years ago

    Pretty 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.

  • flipgimble 6 years ago

    The 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 6 years 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.

  • jazzyjackson 6 years ago

    Allo, 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 6 years ago

      Sublime 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.

  • jazoom 6 years ago

    Hi 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.

  • alex_suzuki 6 years ago

    Hi 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.

  • adonese 6 years ago

    I 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!

  • owaislone 6 years ago

    Congratulations 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?

    • jskinner 6 years ago

      You 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 6 years ago

        Thanks. That worked out perfectly!

    • maxymoos 6 years ago

      There 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.

  • fishtopher 6 years ago

    Hi! 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?

  • azag0 6 years ago

    Any 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 6 years ago

      Oh 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.

  • mstade 6 years ago

    Are you also moving Sublime Text to a subscription license for businesses?

  • desmondw 6 years ago

    Thank you for allowing scrolling past the end. Seriously.

  • cknoxrun 6 years ago

    Hello 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.

  • giancarlostoro 6 years ago

    My 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 6 years ago

      Do one thing and do it well.

  • yumaikas 6 years ago

    Where 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.

  • throwaway427 6 years ago

    Hi 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 6 years ago

      If 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.

  • fizzledbits 6 years ago

    Some 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.

  • mmjaa 6 years ago

    Hi 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?

  • georgehaake 6 years ago

    Thank 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?

  • antaviana 6 years ago

    I 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 6 years ago

      The 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.

  • ryan-allen 6 years ago

    Hello 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! :)

  • micnil 6 years ago

    Great 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.

    • jskinner 6 years ago

      You can drag the top or bottom of a diff to see more context at any time, but there's no setting to change the default number of context lines - I'll add a note for it

      • micnil 6 years ago

        Oh I see, that's probably more in line with what I want to do most of the time. Thanks!

  • sscarduzio 6 years ago

    Hi 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?

  • iamgopal 6 years ago

    Any thoughts on open sourcing cross platform ui library that you have created ? Or even a paid version ?

  • davidcollantes 6 years ago

    Would you consider adding both products (Sublime Text and Merge) in a bundle, say, at a lesser price?

  • openbasic 6 years ago

    Do you guys use OpenGL to render the UI widgets? Or do you use something more high-level like Skia?

  • p0nce 6 years ago

    Thank you. I use Sublime every day, and will for the foreseeable future.

  • sydd 6 years ago

    Looks great!

    Is there any roadmap somewhere so we know what to expect in the future?

    • dsego 6 years ago

      I see you haven't used Sublime Text. No roadmap, sometimes a few years go by without any updates.

  • cwhiteley 6 years ago

    Hi Jon, the app looks great. Does it currently support GitFlow?

  • zyang 6 years ago

    Is there a way to view history of a single branch?

  • marmaduke 6 years ago

    the light UI theme is great (as is the app itself), is there something similar available for ST?

    • wbond 6 years ago

      The 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.

  • nkkollaw 6 years ago

    Why no love for hidpi monitors?

    • jskinner 6 years ago

      We 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 6 years ago

        It's not, but I'm using both GDK_SCALE and QT_SCALE in /etc/environment.

jgresty 6 years ago

> "The evaluation version is fully functional, but is restricted to the light theme only."

They really know their target audience.

  • skrebbel 6 years ago

    Also I think they learned a lesson from how many people simply grew a habit to click "cancel" in the "please buy this" reminder in Sublime Text.

    • leevlad 6 years ago

      After years of clicking cancel as a student, I was more than happy to shell out the full amount for a license after my first paycheck. Don't think I would've stuck around if the free versoin was gimped in any way.

    • polyvisual 6 years ago

      I'm so lazy and it's too easy to click "Cancel"... I have a license but a year after re-installing ST I still haven't added it :/

      • badpun 6 years ago

        Just search your inbox for "sublime license", and copy the license into Sublime. The whole operation takes me below 1 minute on a new machine.

        • mstade 6 years ago

          It'd be nice if there was a command line option for this actually. I have my machine setup almost entirely automated, but this is one of the manual steps I have to do.

  • hbosch 6 years ago

    I haven't used it in a while, but wasn't this also the main differentiator between Unity and Unity Pro (or whatever the paid version was called)?

    It was an excellent motivator. :)

skrebbel 6 years ago

My first impression is extremely positive. Many actions, particularly the kinds of actions that a UI can really help with, are unnecessarily hard in other UIs I've used.

Eg most UIs have a good File History window, but often finding the appropriate file is a lot of work (and by often I mean at least SourceTree, GitKraken and GitExtensions iirc). Eg something like you need to scroll through commits until you found one that happened to have changed that file, then right-click the file, choose file history.

In Sublime, it's just Ctrl+P, fh<enter>myfilename<enter>.

I care about stuff like this (same for Blame, and Stage/Commit (which is usually done great though)) because it's the kind of thing UIs are great at. Both invoking the command and using the output is significantly easier and nicer in a UI than it is from the terminal. Eg it's way more important than an extended "Pull" dialog with all kinds of options I don't care about - I can do that just as easily from the terminal, and my editor probably has a button/keystroke for it somewhere too. So far it seems to me that the Sublime folks got their priorities right. Hats off, will probably purchase!

  • francislavoie 6 years ago

    You can do that in GitKraken too btw, jump to file with Ctrl+P, "hist[enter]myfile[enter]". Or click on any recent commit, on the changes pane click "view all files" and you can jump to whatever file you want and see full history with right-click file history.

    • skrebbel 6 years ago

      Cool! I was an early GitKraken adopter (and dropper), maybe I missed it or it simply wasn't in there at the time.

wingerlang 6 years ago

Feedback:

- I would be nice to be able to remove the name inside the commit log. It's only me on this project and literally 50% of the lines (ever other) is my name.

- I would also like to have the option to split top/bottom like sourcetree, so that I can read the full commit message easier.

- The 'end of list' looks like a loading indicator

- 'Staging lines' only appear when I select something on the line (even one characer). It would be good if clicking in a line actually selected the whole line instead of adding a (unusable?) cursor

- The logo might want to have a shadow where the light and darker color meet. Right now it is looks kinda strange. The Sublime Text logo has shadows where two edges meet. That logo does 'fold' over itself though which this one doesn't. But anyway the color difference is strange on my eyes.

  • francislavoie 6 years ago

    I think GitKraken does the user indicator best by using gravatar icons for each commit node on the graph. Much more compact way to show who's who. Can get confusing in very active repos but it's better than too much text on the screen

  • c487bd62 6 years ago

    I can only get "Stage lines" for files I previously commited.

    Maybe I'm doing something wrong but if I add a new file the only options are Delete or Stage. Or maybe it isn't implemented yet.

manmal 6 years ago

For my needs, GitX (rowanj fork) is still unbeat: http://rowanj.github.io/gitx/ It has the exact right amount of UI complementing the command line, and some delightful features, e.g. amending the last commit is possible via a checkbox below the commit message.

What I don't like about Sublime and now Sublime Merge, is the unusual way of setting preferences by editing files. I understand that hacking in a JSON file has benefits, but if you just want to use that tool, it's tiring having to google how to change a setting. To me, it feels a bit like losing control. E.g. I wanted to check whether SM supports line wrapping—I'm still not sure whether it does, after browsing the available menu items a bit.

  • dsego 6 years ago

    Since you are on a Mac, did you try Gitup? I am disappointed that Sublime Merge didn't take clues from Gitup's interface. I feel it's the most unobtrusive and efficient git GUI to exist.

    • manmal 6 years ago

      I‘ll give it a try!

    • thekarel 6 years ago

      Agree, Gitup is quite brilliant.

  • robin_reala 6 years ago

    For what it’s worth, the currently developed version of GitX (which I use daily) is at https://github.com/gitx/gitx . You’ll have to build it yourself, but it’s in a much better shape than the rowanj fork.

    • manmal 6 years ago

      Oh, good to know, thank you!

  • egorfine 6 years ago

    Latest commit ce17d07 on Nov 10, 2014

    Yeah, been there, done that. I have maintained a fork of GitX for my own usage with my own fixes but then gave up. Better clients exists. Right now I am using Git Tower and happy with it.

    • manmal 6 years ago

      Git Tower is not really better for my use cases. I‘ve tried various clients, Git Tower among them. I need UI only for file comparisons and line staging, and I find GitX‘s Layout perfect. GitX is again under active development (per another comment here).

krupan 6 years ago

"Conflicts are presented with a 3-pane view. On the left are your changes and on the right are theirs. In the center pane is the resolved text"

They are missing a pane then. A 3-way merge involves your changes, others changes, a common ancestor, and the resolved text. kdiff3, Beyond Compare, and very recent versions of emacs are the only tools that I've seen that present this properly.

  • onion2k 6 years ago

    A 3-way merge involves your changes, others changes, a common ancestor, and the resolved text.

    That's true, but is it important to have all those things visible when you're resolving a conflict? The design of a UI should be driven by what the user needs to see, not the data that's being used. Most apps have absolutely loads of invisible data in the background making things work; that doesn't mean they need to be front and centre in the UI.

    In my experience of resolving conflicts I can't remember a time when I've needed to refer to the common ancestor, so do I really want to give it screen space?

    • quietbritishjim 6 years ago

      It's fair to take either opinion – personally I often find the common ancestor quite important, but I could understand why you might not. But it's disingenuous to call a tool "three way merge" if it's not shown. If you're only showing the two immediate parents, that's a regular old two-way merge.

    • pfranz 6 years ago

      I actually just encountered this today. My changes, a large refactor, was trying to be reconciled with tweaks done before my refactor. Diffing mine against their's was gross. The first thing I wanted to see what their changes diffed against our ancestor looked like.

      However, in the end I didn't end up merging any code and I haven't yet been in a position where this has come up much. I just thought it was a funny coincidence I encountered this earlier today.

  • jskinner 6 years ago

    The middle pane is toggleable between the merge results and the base file

  • tom_ 6 years ago

    You can use the central panel for both: common ancestor text in the neutral colour, and differences between the common ancestor and the resolved text in colour, with one colour for differences that come from the 'left' set of changes, and one colour that come from the 'right' set.

    This is what Araxis Merge did, or at least used to do when I used it, and I found it more useful than P4Merge's 4-way display (which just takes up more space than necessary).

    It's possible there are types of merge where it's useful to have the common ancestor permanently visible, but I never seemed to run into them.

  • darekkay 6 years ago

    p4merge also display 4 panels as you described. It's been my go-to merge tool for years now.

  • SkyPuncher 6 years ago

    Jetbrains IDE's use the 3-pane approach and I find it very, very easy to use. Just the right amount of info for 95+% of use cases.

    If I need a common accessor, I'll pull it up some other way (either via history tools or actually finding it in Github).

  • nicolas_t 6 years ago

    Completely agree, showing the common ancestor is extremely helpful.

AltruisticGap 6 years ago

I was hopeful but for my simple uses, it doesn't work.

I use gitg in a on Ubuntu VM, also known as "GitX" on Mac.

The basic UI of gitg is much easier to read and browse, the commits and details are top/bottom instead of left right. With SM, I have to expand the window a whole lot more sideways to be able to read the commits. Also with SM my name is under each commit.. but since I work mostly solo, it's added noise that makes the list more difficult to read (what with the commit messages and the author name underneath practically same font size. here the gitg top/bottom layout means the author names and dates can go in other columns making the commit list easier to scan.

In gitg I have a quick view of what files changed, how much they changed, I can dive in if I want to see the actual code. With SM it seems by default you get a full spread of all the changes across several files.

Lack of separation in general, lots and lots of text floating in space with few lines or separation. Lots of subdued color. Buttons that don't look like buttons.

That said my use case is fairly simple. I work mostly on local repos, so for me gitg is a convenient way to see what I was working on last time, and to stage changes in meaningful commits. I don't need it to do a bunch of other things.

The merge sounds great though.. I really miss that... but as it is SM lacks contrast and readability for me.

Hopefully constructive feedback.

  • AltruisticGap 6 years ago

    Further thoughts:

    With gitg, I click on any commit and I can quickly see the files changed by that commit, then I can click to dive and see the actual code changes.

    In SM by default there is a full spread of the modified lines. That's not as helpful since I have to scroll vertically , potentially a lot in order to see what other files were edited. There does not appear to be a "collapse all" by default option.

    Though even in this collapsed view it's not very informative. In gitg there is a really simple red & green bar visual to see at aglance how much changes there are in each files. Thus when you epxlore a git repo, or review what you worked on weeks before;. it's easier to get a sense of how much things go into each commit.

    With that said, it's a very slick client that obviously does a lot more than Gitg/gitx... I used SM today to edit an old commit message, which was simple to do.

    The merge is probably awesome but I'm not sure how it works.. what if I mess up a rebase from the commaand line, will it let me continue the operation through SM or did I have to start the rebase / misc through SM first? (I ask because typically you had to configure the merge tool in the git config so I'm not sure how SM would catch that)

TorKlingberg 6 years ago

I'm happy to see some innovation in diff and merge tools. I have been happy to pay for Beyond Compare. The diff and especially merge is so much better than the built-in tools. I absolutely hate doing a complex merge on the command line, or trying to edit the conflict files git spits out manually.

But, Beyond Compare doesn't really integrate with git. You can set it to open for 'git difftool' and 'git mergetool' of course, but that's it. BC isn't well integrated with the Linux desktop either, not even the clipboard.

Has anyone here tried both Beyond Compare and Sublime Merge or an other new tool? What keeps me using BC, despite its flaws, is the core diff and merge algorithms. It just does a better job of showing what actually changed, and lets me manually align code when necessary. The suggested merges are very often right too.

indentit 6 years ago

Wow, Sublime Merge is so much smoother than GitKraken, great job! I love that it takes everything we know and like about ST and applies it to Git.

It even seamlessly finds my Sublime Text packages, and uses the syntax definitions installed there for highlighting - no duplicate/double configuration required.

  • DigitalSea 6 years ago

    GitKraken is a web-based application built on Electron, which is why it is slow. Same thing with Slack. What Jon and his team do is always build native and as you are probably already well aware, Sublime Text Editor performance is consistent across all operating systems.

benwills 6 years ago

Straight to payment for me. Sublime Text is one of the few pieces of software I've just felt was done totally right at so many levels. Entirely happy to give you more of my money.

  • nateweiss 6 years ago

    Same here. I expect to actually use SM, but even if I don't, happy to contribute a bit more to the folks who make ST (which I use all day, every day).

  • petey283 6 years ago

    Same. Product already feels great and I'm ready to use exclusively full time.

  • jskinner 6 years ago

    Thanks for your support!

hawski 6 years ago

Looks good. I like how most buttons have text labels instead those dreadful indecipherable icons that are so popular currently. In a way it looks like a successful mix of git-gui effortlessness with no nonsense gitk. I hate all those clients that have to grind all the time through their leaky abstractions.

However I'm still waiting for a client with graphical presentation and manipulation of git's DAG. Other than that I get by with CLI, git-gui (I would only wish to be able to edit files in it sometimes) and gitk.

derefr 6 years ago

I need to know: how long was the debate between naming this "Sublime Merge" and naming it the obvious alternative name: "Submerge"?

(Mind you, I have a strong feeling that people are still gonna call it that.)

testcross 6 years ago

Looks like magit, without the very good editor integration that makes magit awesome. Seems nice tho.

  • fastball 6 years ago

    Presumably as time goes on it will become more and more integrated with Sublime Text, which is arguably a "very good editor".

    Or is that not what you mean?

    • RX14 6 years ago

      The beauty of magit is that the ui is just text, so you can navigate through the entire interface using just your keyboard without "shortcuts". Selecting lines to stage is just selecting lines in the diff like you'd select lines in the editing buffer. Its really nice and caters to power users, I don't know of anything else like it.

    • Volt 6 years ago

      Probably to be read as (very good) (editor integration) rather than (very good editor) integration.

      • testcross 5 years ago

        Yes that's what I meant. Thanks :)

    • Nullabillity 6 years ago

      Then it would presumably have been a feature of Sublime Text, rather than a standalone application?

      • fastball 6 years ago

        Well, when I say "integrated with ST", I mean they will be integrated with each other.

        That way, I can be a power user of Sublime Merge while only using ST occasionally (because I'm more of a vim user), or vice versa (because I'm more of a magit user). Or you can be a power user of both.

        I think it makes sense in this case to have two applications. I personally am an avid user of ST, but I generally prefer the command line for git. However, there are some things that it's nice to have a GUI for when git'ing, so this is ideal for me.

  • dsego 6 years ago

    There is GitSavvy.

Serow225 6 years ago

Congrats! I know what I'm doing at work tomorrow :) Does it have gitflow support built in? Also just FYI the main page shows a "download for Mac" button in iOS Safari, I almost thought it was Mac-only until I went to the Download page. Maybe the front download link should autodetect the platform but also give you the option/drop-down to select another? Or at least make it obvious that it isn't the only platform. Cheers

mescalito 6 years ago

I will try it out immediately, but I am surprised GitSavvy[1] was not even mentioned in this thread. It's by far my everyday package, and it fits very nicely. It's the only thing in a way of really wanting this.

[1]: https://github.com/divmain/GitSavvy

  • lttlrck 6 years ago

    GittySavvy is excellent.

modernerd 6 years ago

Looks great! I was using Fork before, but prefer the clean UI of Sublime Merge so far.

Here's how to create a shortcut to the smerge command (Mac), which I didn't see documented anywhere:

ln -s "/Applications/Sublime Merge.app/Contents/SharedSupport/bin/smerge" /usr/local/bin/smerge

  • frou_dh 6 years ago

    You could cut out the middleman by adding "/Applications/Sublime Merge.app/Contents/SharedSupport/bin" to your PATH.

saagarjha 6 years ago

Very nice. Fast and responsive, unlike most of the Git clients I know. And the new preferences UI is pretty cool.

A couple questions:

* Can I add custom themes from my Sublime Text installation? How about color schemes?

* Are there plans for plugin support?

* Is there a development channel?

* Have you thought about adding tabs?

* Have you considered showing previews of binary files?

  • jskinner 6 years ago

    Custom themes are supported (although not in the evaluation version), however Sublime Text themes will need to be adapted to work in Sublime Merge: there's quite a bit more to the UI here, and the controls to target are quite different. Likewise with color schemes, as long as they define the new diff scopes, color schemes can be used, however none of the existing ones will yet. Syntax definitions, on the other hand, don't need any changes, and any you have installed for Sublime Text will be picked up automatically by Sublime Merge.

    Plugin support is on the roadmap, and tabs will be added if that's what the user feedback asks for.

    There's no dev channel yet, but we'll be adding one soon.

BitterAmethyst 6 years ago

Hi Jon,

On windows it treats .gitignore patterns as case-sensitive which differs from how git itself behaves.

  • jskinner 6 years ago

    Thanks for the report, I'll get it addressed

adamlett 6 years ago

For me the one and only GUI for Git, is GitUp: https://gitup.co.

  • klageveen 6 years ago

    GitUp is cool, I particularly love the graph view. It has almost no functionality though. You can't three-way-merge and resolve conflicts in it, nor browse the file tree for any given commit, nor compare any two commits.

    • asqueella 6 years ago

      It is the only git client I know that makes polishing the commit history (i.e. moving commits around, splitting(!), rewording, editing) pleasant. If only it was available on Windows too...

    • adamlett 6 years ago

      True, it doesn't do everything, but it really hits the sweet spot for me. I wouldn't say that it almost has no functionality. To me, it has surprisingly much. It's just that it does such a good job of keeping the interface clean, that it can appear as if it doesn't do much.

  • _jcwu 6 years ago

    Mac Only...

  • jatins 6 years ago

    Yeah, I also compared against GitUp, which I use currently, and I think I'll be sticking to it.

chrisper 6 years ago

I can't figure out how to configure SSH key or where to find a documentation for the settings file :(

EDIT: Ok I found out it just takes the SSH key from ~/.ssh

But now it complains about C:\\Program Files\\Sublime Merge \\ssh-askpass-sublime.exe missing.

  • jskinner 6 years ago

    Sorry about that - I missed a part in our Windows installer, and ssh-askpass-sublime.exe isn't being installed. This will be resolved in the next day or two, in the mean time the portable version has it - https://www.sublimemerge.com/download

  • commanderjroc 6 years ago

    I am getting the same issue.

    That exe file is not even in the directory for it.

bunwich 6 years ago

I installed the binaries in linux and it didn't automatically find sublime_text. This should help if you're trying to use another editor too.

~/.config/sublime-merge/Packages/User/Preferences.sublime-settings

{ "editor_argument_format": "${file}:${line}:${col}", "editor_path": "/home/<user>/apps/bin/sublime_text" }

or if sublime_text is in your path.

    "editor_path": "sublime_text"
asfaltboy 6 years ago

@jskinner can we run the 3-way merge tool from command line, i.e to set it as a `git mergetool` ?

  • jskinner 6 years ago

    It's not exposed via the command line right now

  • codethief 6 years ago

    Would love to have this as well!

micnil 6 years ago

One thing I really miss with diff tools like this, is the ability to review multiple non-consecutive commits on a single branch, without including all commits in-between.

Example, lets say I want to review commit A and D: HEAD - A - B - C - D - E...

In most diff/review tools, when I select these commits in the GUI, it would show me all changes that have been made in commit A, B, C and D. What I actually want is for the viewer to filter out or atleast distinguish between the changes made in commits I selected, and the commits that are made in-between (in this case, B and C). This could of course lead to conflicts where the commits in-between have modified the same lines of code, but I really don't think this is a problem in 99% of the time.

This would really help the review workflow in scenarios where branching and pull request are not always used.

Too often, I have put down the time to review a single commit, only to find out that the next commit in the same task already fixed the things I noted in the first. reviewing both of them at the same time would save a lot of time.

kristianp 6 years ago

I really couldn't parse the article title: "Sublime Merge - Git, Done Sublime". I think the correct grammar would be "Sublime Merge - Git, Done Sublimely".

That aside, I'm about to try it out. Looking forward to a less CPU intensive git client than Sourcetree. So tired of the constant flickering of the unstaged files view in Sourcetree.

Serow225 6 years ago

Feedback: The first time I switched to the Search view, it was extremely non-intuitive how to get back to the main view. It took me a little bit to figure out that the main view is at Navigate>Go To Commit Changes. Maybe this selection could be moved below the divider so it's a little more obvious that it's related to the other options in that section? Or make the Search view an overlay kind of like Blame so there's a visual affordance suggesting what to click to back out of the view? It took me a good while to figure out that I could get from Search view back to Commit view by clicking on one of the Branches in the Location bar (and if you have that hidden then I don't think there's any GUI-click way to back out of Search view?). Hope this makes sense!

  • jskinner 6 years ago

    FWIW you can also press the Search icon/key binding again to get out of it, or use the Back button on the toolbar. I agree that it's not at all obvious from a visual point view - I'll see what we can do.

    • Serow225 6 years ago

      I think what made it a little less intuitive is that the very first time I got to Search using the menu dropdown instead of the Search Icon (at that point I hadn't even noticed that there was a search icon). If I had switch to the Search view the first time using the icon, it might have been a little more obvious to me that I could back out by clicking it again.

    • Serow225 6 years ago

      Thanks Jon! I'm really liking it so far, congrats to you and your team. Going to be sharing in an email to our dev group :)

fyhn 6 years ago

This looks really good. I'm trying it out now, and my main immediate pain point is that there is too little visual separation between staged and unstaged files. A horizontal divider or a slight change in background color could be useful.

itsnotvalid 6 years ago

For direct integrations there is already a tool called Sublimerge (https://www.sublimerge.com/) (I am not affiliated with this team), anyone compared the two? If it's a merge tool is not integrated directly with the editor, it's not as useful.

On a side note, the competition for this sector of market, for sublime and such is much tougher, like atom and vscode being "free" to use. The one thing that hinders definitely, is the amount of third-party packages available.

pkamb 6 years ago

I use SourceTree almost solely for its "Split View Staging" feature, where a line or hunk can be moved between the two states and the entire bit you're about to commit can be viewed independently of other working copy changes.

Fits my mental model so well, but is apparently considered too complicated for most other git clients such as GitHub Desktop and Tower.

From the animation, Sublime Merge seems to have Staged/Unstaged areas? Will definitely try this out, as SourceTree is otherwise bloated, slow, and missing critical features.

  • dabernathy89 6 years ago

    I've been pretty happy with SourceTree, despite a few minor annoyances. What missing features are you thinking of?

    • pkamb 6 years ago

      The big one for me is deleting multiple branches! I want to Shift-Click to select a bunch, and then delete them. Doesn't work, despite several UIs in SourceTree where it should.

      • dabernathy89 6 years ago

        Ok actually, yeah. That has been one of the biggest pain points for me too.

rakibtg 6 years ago

@jskinner We need a built-in console/terminal and better Javascript intellisense for Sublime text; I hope the Sublime Merge and Sublime Text will fit together perfectly. All the best.

jarek83 6 years ago

Whenever I try to do something I get an error: xcrun: error: invalid active developer path (some path here), missing xcrun at: some other path here

  • jskinner 6 years ago

    We use the system Git by default on Mac if it's installed, but it sounds like that's not working for you. If you set your git_binary preference to "bundled", we'll use the one that comes with Sublime Merge instead.

  • saagarjha 6 years ago

    Try running "sudo xcode-select -s /path/to/your/Xcode.app` in the terminal, or install the command like tools if you don't have Xcode.

Scottopherson 6 years ago

I've been using Tower but I may switch to this since Tower switched to a subscription model and I'm a fan of Sublime Text.

  • mistersquid 6 years ago

    Like sibling commenter, I'm right with you because I am dubious of Tower's pay-to-play subscription model.

    Sublime Merge implements cash cow subscription (paid license works in perpetuity and grants updates for a specified time period). [0] This is more acceptable for those concerned about losing access to tools due to an expired license.

    Cash cow licensing provides a good balance between the developer and user where the developer has strong incentive to actually improve the product and the user the power to decide if paying for an updated version is worth it.

    With pay-to-pay, one's tools are effectively held hostage regardless of the value of available updates.

    [0] https://medium.com/@drewmccormack/a-cash-cow-is-on-the-agend...

  • n42 6 years ago

    I feel the same. This is a better fit for me anyway. Tower seems to have doubled down on the "non-developer" type. I am perfectly happy to use git on CLI, but a visual interface for selective staging and merge conflicts makes things easier. This seems to really fit the workflow for keyboard power users (cmd+p menu, etc)

CityWanderer 6 years ago

Super excited by a three-way merge tool, it's the thing I find most lacking in Atom and one of the great things about IntelliJ.

keithnz 6 years ago

First impressions, it's quite nice, super snappy as promised.

I normally use SmartGit, which is also quite snappy, though is a bit clumsy with its windows. But I think SmartGit still has quite a bit of an edge when it comes to presenting diffs and the branching history at the moment.

I'll give it a go for a bit though and see if it grows on me

ebgraham 6 years ago

How do I filter the visual branch view to only display the commits from the branch I've selected or highlighted? Fork has a filter icon for this, and Tower does this by default (preferred).

My repo at work has a lot of branches and contributors so I really only want to see a linear history of my branch.

softinio 6 years ago

First impressions I really like it. Excited to do my next merge conflict with it.

Well done Jon and Sublime team.

hex20 6 years ago

Wow this looks awesome. Maybe I can finally stop using PhpStorm for git and nothing else.

petey283 6 years ago

Already one of the best git clients out there. The snappy feel makes it a joy to go back in time and track the changes and understand more about the entire codebase.

To me, this is an underrated element required in understanding the lifespan of a codebase.

davidlartey 6 years ago

Hello Jon, congratulations on Sublime Merge. ST has been my preferred editor for as long as I can remember.

I'm trying out Sublime Merge, but it seems my git hooks aren't been called. Am I the only one experiencing this? A feature or a bug?

  • jskinner 6 years ago

    Git hooks will be run, as all mutating actions go through git itself, however pre-commit hooks may not work as you expect with this setup. When you commit via Sublime Merge, it's doing a git commit -m "...", which works differently with git hooks than a plain git commit.

b3n 6 years ago

How does this compare to Magit?

amirmasoudabdol 6 years ago

Thanks for this really. I never understoon any of the Git Clients and I never has been interested to learning or using them. Sublime Merge is different though. It has enough UI, and you still feel in control. It makes sense.

frou_dh 6 years ago

Bet there was some gnashing about how to name this. Sublime Merge makes it sound like it's in the established genre of general text diffing/merging application, rather than a git GUI.

Regardless, personally very likely to use this!

vicarrion 6 years ago

I would definitely love to have tabs for multiple repositories. Source tree on windows has this which is great for managing lots of different projects, but infuriatingly on osx sourcetree has one window for each project.

  • asqueella 6 years ago

    Ctrl+Shift+O to switch repositories mostly works for me.

    If only SM remembered the exact view that was open in the repository you re-open and made the name of the currently open repo more prominent - I would be happy to give up the visual tabs.

wingerlang 6 years ago

Another piece of feedback

- When I stage my lines, it is not obvious where the actual staging is as it just seems to disappear. In SourceTree there is a very clear 'split view' between the change and staged files.

looperhacks 6 years ago

This looks very interesting! But I don't know that the "Review Better" video is trying to show, maybe the playback is buggy, because all I can see is that the code panel is resized?

nik736 6 years ago

Since using Atom for years now I am not up2date in regards to Sublime Text. Does it have a Git integration, or is this the tool that should be used instead of a editor integration?

  • dsego 6 years ago

    No built-in integration afaik. There are plugins to issue git commands and see line diffs in the gutter.

lordelph 6 years ago

One possible issue, I've got a file showing in "Untracked Files" which is not shown when do git status

That aside, I like this a lot, and normally I only use the git command line.

  • sleepyhead 6 years ago

    I had a bunch of files showing as untracked. Looks like Sublime Merge is not ignoring files listed in the global .gitignore.

shusson 6 years ago

Looks nice but what I really want is a native client that works with github PRs. I know this was probably a design decision to remain a git client not a github one but still.

  • mattigames 6 years ago

    It should have an option to install a Github-plugin for integration, maybe a bitbucket and gitlab ones too if feasible.

owaislone 6 years ago

Doesn't scale on HiDPI on Linux. Increasing font size only makes a part of the app readable and there is no zoom in/zoom out functionality that I could find. :(

  • jskinner 6 years ago

    We pick up the default GTK dpi settings, and if that's not suitable, you can use the dpi_scale setting to set it specifically (you'll have to restart Sublime Merge after changing it though).

    I run Sublime Merge on high dpi screen under Linux every day FWIW.

andig 6 years ago

Sublime Merge looks a lot like SourceTree from the approach it takes. Must say that I'm happy with SourceTree after having had a slow start...

commanderjroc 6 years ago

Hey Jon, Sublime Team.

Is there a way to make the "Staged Files" view appear at the top of the tool? Preferably above "Working Directory" ?

  • jskinner 6 years ago

    It's not configurable, but you can click on the "Working Directory" head to collapse all the files there, which will make seeing the Staged changes easier

softinio 6 years ago

Jon,

I am excited about this and have downloaded it.

This product aside I really like sublime text so hope you have a positive roadmap in mind for that too.

tsumnia 6 years ago

I've only gotten to play with it for a short while, but does it handle GitHub Enterprise repos as well?

cpburns2009 6 years ago

Is it possible to use this outside of the context of Git? Such as diffing 2 different files or directories?

edgarvaldes 6 years ago

>You can also hover over most buttons to see which git command it will run.

I really like this feature.

KaoruAoiShiho 6 years ago

How does it compare to Fork? My currently favorite Git client.

  • softinio 6 years ago

    Never heard of it before. It looks good. Is it really free?

    • KaoruAoiShiho 6 years ago

      I certainly never paid nor have I been asked to pay. It works great for me. /shrugs

aogl 6 years ago

Beautiful as expected Jon, thanks.

Your UI kit feels really nice, good job.

ngrilly 6 years ago

Is it possible to amend the last commit in Sublime Merge?

  • indentit 6 years ago

    yes, there is a (dropdown) button on the right of the commit button

Jonnax 6 years ago

Looking forward to trying this out.

Sublime editor is incredibly fast.

7kmph 6 years ago

Finally, a decent git GUI for Linux. More please.

zorkw4rg 6 years ago

Is there anything worse than having to develop with people who can only use Git via a UI? It pretty much by definition means they have zero grasp on the fundamental concepts of Git.

_hao 6 years ago

How does it compare against GitKraken?

  • saagarjha 6 years ago

    Well, for one, GitKraken is Electron while the Sublime tools are native C++. So I’d expect faster performance.

    • _hao 6 years ago

      I remember something about Sublime being written in Python? Also I'm more curious about the feature set. The performance argument can be made again for Sublime vs VSCode. Doesn't matter to me because I've switched from Sublime to VSCode a long time ago.

      I care about features the most, not if the app will open in 0.5s or 3s

      • guessmyname 6 years ago

        > I remember something about Sublime being written in Python?

        SublimeText is written in C++ with the "Skia Graphics Library" for the UI.

        It exposes an Python API to extend the functionality via 3rd-party packages.

        > I care about features the most, not if the app will open in 0.5s or 3s

        Opening is not the only performance gain you will get for using a software written with native libraries.

        You get faster overall operations in comparison with a program like GitKraken that needs to allocate several chunks of memory to execute simple tasks. It always baffles me when people use the startup time of a program as a mean to explain why they prefer using it over others. Electron-based applications are —overall— not performant. It's impossible to get good performance out of Electron because it sits on top of a web browser that is known to hug significant amount of memory from your entire system.

      • thune 6 years ago

        Sublime Text plugins are written in Python, but the core is C++ AFAIK.

      • jazoom 6 years ago

        I feel similarly and use VS Code, but GitKraken takes much longer than 3s to load on my desktop and it uses up to 500MB of RAM. Since I usually have it open with VS Code that's quite a lot of heaviness open at once. Then I've got several terminals open, a local Kubernetes environment, etc. Stuff adds up.

daveheq 6 years ago

"Evaluate for free" - dead

harwoodjp 6 years ago

Is there a way to diff 2 branches?

  • FichteFoll 6 years ago

    You can ctrl+click to select two commits (from different branches) which are then diffed against each other. You cannot select branches in the sidebar directly like this, however.

pdeva1 6 years ago

it would be nice to put a label to mark the 'HEAD' commit

kiechu 6 years ago

+1 for Stage Lines

atombender 6 years ago

This looks pretty good! Maybe this is a good time to air some complaints about all of these Git UIs.

The approach of every single Git app that I've encountered is to present the history as the entry point to working with a project. Maybe I'm a weirdo, but that's not how I primarily work with git, and while having such a history view is critical, I'd like a tool that actually doesn't do that as its main mode of operation.

Instead, I'd like a tool that has a file-oriented approach. Which is to say that it should show uncommitted changes as a file tree browser that either shows the entire tree (with icons, colours or whatever to indicate what is changed) or the subset which has changed. This should be a tree browser where you can click on a single file to view its diff.

The other thing that these Git apps do badly is diff display. Sublime Merge can be forgiven for doing a simple colourized vertical view in its first public release, but other tools can't. The best diff browser I've seen is Eclipse (which I haven't used in a decade, but still miss at times), which coincidentally implements the same UI metaphor. Take a look at this screenshot:

https://i.ytimg.com/vi/-Jdu__jEnFw/maxresdefault.jpg

Note the left pane, which is the file tree. It's only showing changes.

Note the top right panel, which shows a semantic change tree of your file. If Eclipse understands the structure of your file, then it can show the changes by class, method and so on. It's really nice.

Thirdly, note the diff view, which is a side-by-side view which is visually really good at correlating blocks of changes. Many side-by-side differs will keep the two views vertically synchronized by inserting blank space. Not Eclipse! There's no blank space; instead, Eclipse uses the Bezier lines to indicate which block on the left side corresponds to the block on the right side, and these lines are updated as you scroll. Here's a video from someone using the UI:

https://youtu.be/KfeqnernMmE?t=807

Eclipse isn't/wasn't a beautiful app, but it nails the diff view.

The important thing is that you don't get the entire project diff in a single view, which is what Sublime Merge does if you go into either the "unstaged files" panel or a commit, but you get a concise file overview, and only see the diff for one file at a time. Doing it the way I describe above doesn't preclude being able to see the diff for a whole tree in a single pane, but it shouldn't be the default.

  • solutionyogi 6 years ago

    Couldn't agree more with your point about history v/s file.

    This is why I use SmartGit. https://www.syntevo.com/smartgit/

    It has two perspectives, 'Main' and 'Review'. For each perspectives, you can configure different 'windows' to be shown/hidden. Window types are 'Changes', 'Journal', 'Branches', 'Git Output' etc.

    For the Main perspective, I configure it to show me History + Remote/Local branches + 'Git Output'. This is when I want to interact with the remote repository.

    For the Review perspective, I configure it to display the Files/Folders and Changes. You can configure the 'Files' view to show 'modified' files on the top, review the differences in 'Changes' section below and do quick commits.

    Yes, the above is not as nice as Eclipse being able to display semantic changes but it's a very nice workflow and have not found anything better.

  • PretzelFisch 6 years ago

    I know this is for windows only but you might check out https://tortoisegit.org/ it has shell integration that lets you see what each files status. I think this is what your describing.

    • atombender 6 years ago

      I don't use Windows, but from what I can see from screenshots, TortoiseGit doesn't do anything I described except show file status, which most IDEs (e.g. Visual Studio Code) already do.

davman 6 years ago

Looks great Jon, happy you are expanding the Sublime family.

Can I suggest Sublime Terminal as a possible addition? I'd happily pay for a decent terminal experience on Windows and with your cross platform toolkit it looks like you could deliver that. ConEmu et al just don't do it for me.

  • FichteFoll 6 years ago

    I would keep an eye out on alacritty. It's a blazingly fast gpu-accelerared terminal emulator for Unix (currently) written in rust. According to their 0.2.0 announcement post, where they added scrollback support, Windows is next on the Roadmap.

    • davman 6 years ago

      Thanks, I think I'd seen this one in the past but had ruled it out due to no Windows support (at the time).

      Edit: Ah, also "doesn't have features such as tabs" ruled it out for me.

      • calcifer 6 years ago

        > doesn't have features such as tabs

        The lack of tabs is a feature for some of us. After all, why have tabs when you can have tmux? :)

        • drb91 6 years ago

          If you’re asking seriously... tmux has a unique interface which is probably not worth learning merely for the purpose of managing multiple active sessions. You also can’t wire it to accept proper GUI commands with the mac command key. Tabs make sense.

          Personally I recommend Terminal.app :)

        • davman 6 years ago

          I'm not saying you have to have tabs, if you want to paint your terminal pink with yellow fonts and render it upside down then go for it, but I'd like tabs :)

        • data_scientist 6 years ago

          I needs to connects to multiple servers at the same time, and tmux sessions shouldn't be stacked. How can I do that without tabs?

          • jrowley 6 years ago

            If you have 2 tmux servers with different hotkeys you can totally nest them safely. I have a different hotkey prefix for my machine and then leave the default for servers. Works great!

          • calcifer 6 years ago

            Use multiple panes and/or windows? It's a terminal multiplexer, each panes is a separate terminal, just like tabs.

      • StavrosK 6 years ago

        Alacritty isn't actually super fast, the author just opened three other emulators and decided to call Alacritty "the fastest terminal emulator on earth".

        Kitty is much more full-featured and super fast. I've switched to it and love it to bits.

        EDIT: Ah, it's not available for Windows, too bad. It's the best.

        • chupasaurus 6 years ago

          > It's the best.

          Heard of Konsole? It doesn't need GPU to achieve the same speed.

          • StavrosK 6 years ago

            I like Kitty because of the built-in layouts, the speed is a bonus for me.

      • b3n 6 years ago

        You can get a tab-like experience using tmux. This also gives you features like scrollback which Alacritty doesn't support out of the box.

        • aetimmes 6 years ago

          Funny you should mention that - alacritty just merged their scrollback feature branch into master a couple of days ago.

    • octorian 6 years ago

      And like all these cool new *nix terminal projects, they seem to forget that a configuration GUI is worth having. Sure, you don't need it every day, but its really darn handy when you're first setting it up. The cycle of "Look at website, edit file, restart terminal, repeat, what are my font options again?" gets old really fast.

    • deagle50 6 years ago

      It's fast in the throughput sense. Typing latency is much worse than Terminal.app

  • zmix 6 years ago

    Do you really want to take away resouces from SublimeText development? Now, that also SublimeMerge is on the plan?

    With the new Windows Console API we can assume, that people will start to use it.

    • davman 6 years ago

      I don't want to take away from anything, but I think resourcing appropriately is a problem for Jon not for me :)

  • mstade 6 years ago

    I'd pay cash monies for this! Particularly if it's cross platform.

  • nickjj 6 years ago

    Kind of curious, what don't you like about ConEmu?

    I've been using it for many months now and it's been nothing but solid.

    I spend 99% of the time using the WSL terminal, and every once in a while I run a PowerShell terminal too.

    • davman 6 years ago

      Really, and its a terrible reason to write an entirely other app, but I just don't like the styling on the tabs :/ That tabbed Windows GUI is just so damn ugly it actually distracts me.

      • nickjj 6 years ago

        > I just don't like the styling on the tabs :/ That tabbed Windows GUI is just so damn ugly it actually distracts me.

        They bothered me too but it's totally fixable with 1 setting.

        There's an option to remove the tabs and they become merged into the titlebar (with numbers). It ends up looking like this: https://imgur.com/a/NDgCZFJ

        Then you can use Win + 1 or Win + 2 (or other hotkeys) to switch between them.

        Right clicking the titlebar also brings up a context menu for accessing the settings and a bunch of other things.

        You can enable this style by going to general -> tab bar -> "don't show" (the radio button on the top left).

        • davman 6 years ago

          Thanks, I'll give this a try :) Currently I have Hyper looking like this: https://imgur.com/a/8pZmMqM so I have tabs that I can click between and they look nice.

          "Prettyness" seems like such a trivial thing to complain about, but when I spend half my working day staring at something I'd rather it was nice to look at!

    • timgilbert 6 years ago

      While I generally like ConEmu, I personally find the multi-line selection to be pretty poor compared to something like iTerm2. (The way the selection buffer stays at the same coordinates while the text underneath it scrolls up isn't all that awesome either.)

    • yumaikas 6 years ago

      ConEmu's performance for TUI apps like vim or weechat+ssh is not great.

      Not a factor if you don't use those sorts of applications, but a bit of a deal breaker if you do.

  • kuroguro 6 years ago

    +1, windows is unusable without a good terminal - my current favorite is ConEmu but it comes with some quirks.

    • geekles 6 years ago

      Hyper2 is pretty good for windows. Also the built in VSCode terminal is serviceable.

  • nerform 6 years ago

    Awesome idea. Cross platform fast terminal with nice tmux integration.

vamshi4001 6 years ago

Awesome! This would be handy and can avoid the heavy sourcetree (atleast on windows!)

sjapkee 6 years ago

99$ for a git client. Nice joke.

  • urda 6 years ago

    Great software isn't free, it costs something along the way.

    If you think you can beat their price point, well there's clearly a market for it. Go for it.

  • darkstar999 6 years ago

    You are a software developer who doesn't respect the value of good software?

    • sjapkee 6 years ago

      It's not worth $99. Maybe $5, maximum $10. But not $99.

vitosans 6 years ago

I wanted to like this, downloaded opened and tried to change to the dark theme (you know same as my good old terminal) and you have to pay for it. rm -rf back to vi

chrisper 6 years ago

Is this made by the same team as sublime text?

  • ABS 6 years ago

    it does say "from the makers of Sublime Text" in the title and on the page immediately under the title...

  • zmix 6 years ago

    How could you not see it ? ;-)

    • chrisper 6 years ago

      It would not be the first time someone making a Show HN with a similar name to some other popular app / service.

Aldo_MX 6 years ago

No dark theme in the tryout version, that's evil. I love Sublime Text and I believe that Sublime Merge will surely do an exceptional job, but I love my eyes even more, so I'll pass this time.

  • ealhad 6 years ago

    I think the point of a tryout version is to make you buy the software.

    • derefr 6 years ago

      The point of a tryout version is to allow you to try the software, in order to make you buy the software.

      For some people (e.g. people who have delayed sleep-phase syndrome), a dark theme is essentially an accessibility requirement. They won't be able to try the software if it doesn't have it.

      Imagine a piece of software where the demo version doesn't have screen-reader support. Would that make sense? How do you expect a blind person demo the software?

      • ealhad 6 years ago

        Well, I haven't tried the software, and won't, since I all my needs are already met and I tend to avoid proprietary software anyway. Nevertheless, I think this is a clever strategy from Jon Skinner and his team.

  • walkingolof 6 years ago

    If you pay for it you get the dark theme, which is reasonable, people have bills to pay.

    • vitosans 6 years ago

      make it demoware until paid, don't hold dark theme ransom I didn't even give it a shot once I saw that I deleted it.

  • fyhn 6 years ago

    Agree to this.

isatty2 6 years ago

$99 for this?

When there's git cli, magit, fugitive (which you should be using if you're really really in need of a GUI (and which is also better than whatever the demo is showing))?

I'm all for paying for your tooling if you can afford it but overcharging much?

  • trishume 6 years ago

    Sublime Text is close to being the only piece of perfect software. I have so much good will for the Sublime team that I'm tempted to buy it without even trying it.

    I don't think the prices are comparable to other software since this will be a qualitatively different software-using experience.

    I think people often underestimate in general how much really good software is worth. Most software I regret paying as much as I did for but I would pay at least $300/year for Sublime and likely more if that's what they charged. Dash is another good example of software I get way more value out of than what I paid.

  • kitsunesoba 6 years ago

    $99 is peanuts considering how much most devs make and it’s something that you’re likely to be using at least 5-7 days a week — even in the case of weekdays only (260 days/year), you come out at about $0.38/day. The sublime guys aren’t dropping major new releases often, either, so that $99 is likely going to last you for 2-3 years minimum, making the price even more incredibly cheap.

  • guessmyname 6 years ago

    I make more than $99 per hour… So I just need to use this software for one hour to justify its price.

    If you cannot afford it, then just use the try-out version, which offers unlimited functionality.

  • FraaJad 6 years ago

    It is essentially free unless you want the ability to customize the colours. This is even more generous than SublimeText. Not even nagging popups.

    • jimyl 6 years ago

      Nope, there are popups just like in ST. But good people will purchase a license, so that's not a problem, right? ;)