Hacker News new | ask | show | jobs
by developer2 3580 days ago
All of the OS X interfaces to Git are, to be honest, quite terrible. Sourcetree is awful. GitHub Desktop is even worse. I've tried a couple of others, the names of which elude me at the moment. I think most of it is less of a complaint against the software itself, and more of a problem with trying to present the complexities of Git in a simplistic UI. The simple fact is: Git as a whole is really, really freaking complex. Making the basic operations idiot proof is difficult enough, and then you have to try to offer a frontend for things like rebasing. Seriously though, fuck the products that pre-select all unstaged files to be added to the index on every commit. If I wanted the file staged, I would add it. Stop harassing me to add my development files - and no, I shouldn't have to gitignore them to prevent being constantly forced to deselect them. By all means, show checkboxes for me to add the files, but do not pre-check them.

I haven't seen a single interface that gets it right. JetBrains' integration in their IDEs is the closest to "mostly usable" I've seen, where branch creation, pulls, merges, conflict resolution, and pushes are fairly straightforward. It's still far from perfect - I do the lower-level Git > Pull rather than using the Update Project window because I have no idea what operations that window performs; and some rare operations still require dropping to command-line. I'd rate their implementation a 7/10 compared to the 3/10 other tools like Sourcetree provide.

A huge reason JetBrains has an insurmountable lead is its diff and merge editor. It is the best on the market, and the only usable side-by-side merge tool I can work with. Their 3-way diff is a dream to use. The last time I had to assist a co-worker merge a conflict using WinMerge on Windows, I gave up after 30 minutes. I flat out could not understand what the differences were, let alone figure out how to resolve the conflicts. Went back to my desk, checked out the branch in JetBrains' PhpStorm, performed the same merge, and had the conflicts resolved in a couple of minutes. It's no surprise to me that people using WinMerge erase work done by other people far too often.

Anti-disclaimer: not affiliated in any way with JetBrains. Their IDEs are mostly amazing, though it's frustrating that they focus 95%+ of their efforts on new features without going back and fixing what is wrong with their existing features. Their diff/merge editor, at least, is unmatched by any other product I have seen to date (other than the fact that CMD+F / CTRL+F to find in the diff editor is broken... again, JetBrains has some serious bugs that never get fixed).

2 comments

If you haven't tried http://gitup.co/, give it a shot. It works completely different from any other Git client and might meet your needs.
Agree with all of your points. SourceTree nowadays does not select by default (at least my setup doesn't) but it's still far from optimal.

WinMerge? On Windows? I'm using beyond compare which is pretty nice when correctly configured, tortoise internal diff ain't bad either. Both have three way diff which I consider standard for any diff tool. Jetbrains indeed get a lot of things right. Using their resharper (visual studio), webstorms and itellij ultimate versions. They make amazing products.