Hacker News new | past | comments | ask | show | jobs | submit login
Gitbox 1.0 released: a version control app for Mac (gitboxapp.com)
146 points by oleganza on Nov 27, 2010 | hide | past | web | favorite | 71 comments

No Github integration, and does not seem to provide much over GitX. At the very least, GitX does have an inline diff viewer when you browse revisions. In Gitbox you have to click a modified file, and then it will launch FileMerge. Too uncomfortable.

Which fork of GitX would you recommend?

Maintaining a tool like this is basically unpleasant. You either need to be maintaining it for internal customers in a large company, or you need to sell it as a product - in other words, it's one of those products you really want to get paid for.

Maybe having a paid project will help keep this app actively developed.

Brotherbard's fork has a bunch of additional features and I've found it to be pretty stable. I use it daily and highly recommend it.


Another good tool that works on all platforms is smartgit: http://www.syntevo.com/smartgit/index.html

It is subject to a German license agreement...

And the specific problem there is?

+1 brotherbard's fork is awesome. Gitx is all I need dev a Ruby dev.

agreed. i dont know why one would pay 40 bucks for an app that already exists for free.

Gitbox is superior to what you have today. Very common things like commiting and checking the status and log are much faster and cleaner than in the command line or GitX. It is easier to extract a file from history, compare and manage the branches. You also pay for a level of attention to details in Gitbox, I explain it here: http://news.ycombinator.com/item?id=1944698

Talk with some web designers who have been looking for a decent gui tool for git. They don't want to learn to use command line and aren't happy with existing tool support. They are your market. Go to a local designer meetup group and sell your software to every one of them.

Iterate on feedback, absolutely, but don't iterate on feedback of hackers, iterate on feedback of people who actually want your software and are in your target market.

If you're dead-set on developers as your market, there are a ton of folks who still use svn with a gui because "no good git guis exist". These are the non-power-users of version control. You're not likely to find them here or on super-technical sites, but they do exist and there are many of them. The unfortunate part is that if you market to them you'll probably end up having to build an Eclipse plug-in.

This is the biggest obstacle to getting web developers moved over to Git at work. I am moving the team to task branches over the next few months, and the whole idea of branching/merging/pushing/pulling is proving difficult for them to internalize. They can handle basic branching and the svn model, but for Git to be successful in my organization, I'll need something like this.

I registered to encourage development of tools such as this and to give it a thorough run-through at work.

Absolutely right! One of the guys I was working with at my last contract was an old Java guy that loved Eclipse. We talked about moving from SVN to Git but he resisted because there was no good, proven, stable, active development GUI for Git in Eclipse. Build that plug-in and you can charge for it - guaranteed!

Thanks for the inspiration :-)

> "If you're dead-set on developers as your market, there are a ton of folks who still use svn with a gui because "no good git guis exist". These are the non-power-users of version control."

Look at all the unanswered questions in Google results for how to integrate Mercurial or Git into Coda.

This class of developer is looking for tools between Dreamweaver and curl -- arguably, most developers.

Turning your tool into a plugin or add-on to some existing editors would garner a lot of them, with those editors' sites serving as a marketing platform too.

One thing I notice is that gitbox seems to have a persistent notion of which repositories it cares about. This will not work well with how I (and presumably many other folks) use git/hg/et al.

Namely, for every little project with writing (latex) or programming (in some language), I create a repo. Over the course of a given year, this means easily 50+ repos, some short lived, some that I use for quite a while. I do not want to be dealing with a sidepane of my repos unless i can toggle it to show just eg "my 10 most recent repos" or the like, which I don't think gitbox seems to presently offer that.

Also, I approve of the choice of having a 1 repo limit thing as the distinguisher between with and sans license.

another question is: how do you plan to distinguish yourself from smartgit, which is the current / only gui'd paid osx git app?

I understand the limitations of the current sidebar design. This will be improved over time.

Regarding smartgit: it is simply not for the people I'm trying to work for. It looks and feels like another scary development tool you should have a commitment with. I'm okay to have such tools if it is worth it. In case of version control, the app should be a simple small appliance which does not grab a lot of your attention.

I can try to understand how Linus spends a lot of time with git merging all the patches for his projects. He really needs to care about version control and browsing all the tiny details. For the rest of us, we work with code, graphics, but not with merges and versions. We should spend more time in Xcode and Photoshop than in any version control app. Smartgit is for guys like Linus, Gitbox is for everyone else.

The question is, are you going to be using your GUI in addition to or instead of the command line. GitX fits into my thinking as a supplement to the command line (I'd never create a repository or commit with it, I just look at the graph and changes), while Gitbox could be a replacement for using the command line on OS X... I just think it needs a graph like GitX (and every other git GUI tool) and it needs to act a little more like Versions.app, which gives the impression that it's not just a few simple tasks for repositories, but the all-in-one experience.

Soon Gitbox will indeed provide all-in-one experience, but it will still look like a little simple app. No way it will look like an IDE: people should spend their time inventing, drawing and coding, not managing versions.

>Very common things like commiting and checking the status and log are much faster and cleaner than in the command line...

git st, git add ., git ci seem pretty quick to me. I set aliases for status to st and commit to ci, but tab completion work pretty well. I've been stepping away from GUIs lately when the command line is available. It's quicker for my hands to stay on the keyboard than it is to switch to the mouse and back

> It's quicker for my hands to stay on the keyboard than it is to switch to the mouse and back

Agreed. Why would anyone want to stop working, grab the mouse and click on a menu, when the command-line interface for git works perfectly.

You may use Cmd+tab and keyboard shortcuts in Gitbox as well. It is even faster than in Terminal and you don't have to type "git status" or "git log" (even with aliases)

I've been trying hard to use GitBox for the last 2 month (beta version), but the lack of a quick view for commits makes me always revert back to GitX.

With GitX, I can easily cycle through all the files and see a quick summary of what was changed. With GitBox, I have to double click on every single file to get the diff. Either that, or just blind commit files. Not good options.

GitBox has the best push/pull functionality of any git client so far. But its crappy commit panel is really holds it back.

All points a valid and will be addressed in the upcoming versions.

Awesome. Thanks!

Obviously the command line version is going to suit most people here better. That is completely missing the point.

This will be perfect for those of us who work in teams with less technical people who still need r/w access to repositories. This will save us from training the designer and manager types in our organisations to use the command line tools, and as such will pay for itself.

Developers, too. Until you study and play with git for a long time, local/remote branches and pushing/pulling are hard to understand and very hard visualize. With Gitbox it's like reading your e-mail. I promote it at work as "the git client with five buttons" because that simplicity is worth a lot.

Well, everyone's talking about alternatives, but kudos for putting your own touch on the concept and launching your app. I'm going to try it.

This is great. I hate maintaining a fork of gitx myself, and actually gitx is markedly inferior to a high-quality commercial Mac application. There just haven't been any of those for git yet.

For Subversion, there are Versions and Cornerstone, which are really much more pleasant to use, but nowadays of course most of projects are using git. So I am stoked to see a promising developer take this on. I'm sure he will make a run at adding missing stuff like optional inline diff viewing and whatnot.

There seems to be also another git client coming out this month: http://www.git-tower.com/ — Git Tower

The UI seems a little bit more confusing, not something simple. I still use GitX.

I'm using the Git Tower beta and I have to say, it works like a charm. It does everything that GitX does, but provides a better UI for everything.

The only thing I miss from GitX is the ability to discard changes per changed line/block. In Tower, it is possible to stage per changed block though.

[edit] One thing that I forgot to mention is that the developers are very active and responsive, even though it's a closed source project. I made a few suggestions and got replies for each of them within a week. (Compared to Gitbox, Git Tower is built by a whole team of devs.)

The tagline seems quite negative:

"Linus made Git for himself. Gitbox brings Git to everyone."

Without Linus' free creation this app wouldn't exist at all.

Linus did make git literally for himself, and by extension the kernel community. If you look at his quote about the name "Git," I think it portrays accurately the wry attitude of mock-antagonism linus feels around git:

"I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git." - https://secure.wikimedia.org/wikipedia/en/wiki/Git_(software...

It's not negative at all. It is a credit to Linus as a creator. Linus made a great tool and the command line UI is enough for him. Gitbox just makes his creation accessible to others and everybody wins.

Please don't get defensive. Accept the feedback. Move on.

And yes, whether it was intended or not, that statement can be inferred as a negative.

It's only negative if you want to read it that way.

Command line version suits me well. If I need xcode integration, I can use xcode 4 preview, which has merging tools and code comparison boiled in.

By the way the site talks about a discount until Dec 1, I guess I'd skip that discount no matter what, as others mentioned a tool called Git Tower which seems to have a pleaser UI.

Some sites also suggested another open sourced Git UI called Gity http://gngrwzrd.com/ other than GitX which to me is just another blend of git-gui. In the OSS part Gitnub (https://github.com/Caged/gitnub) is a UI for Github and Git in general, but this one is not pure Cocoa (requires RubyCocoa.

It's a good effort - although I agree with a lot of the folks commenting here, I cannot recommend this to anyone without Git experience over GitX. The good news is, there is plenty of room for an intuitive GUI based Git app, particularly with GitHub integration. It's frustrating working with non-developer types who need access to static assets that need to be versioned. I need to get them an SVN equivalent such as Cornerstone or Versions. Teaching them the command line and Git is an all too time consuming process and I have no choice but to ensure they know at least the basics on smaller projects where non-developers are tightly coupled with things like HTML/images, etc.

65 MB? For a git browser? Really?

First, it is not a browser. You actually do commits, merges and manipulate branches.

The size is that big because Gitbox is bundled with official Git binaries so you don't have to install anything else. I will see how to bring the size down in the next versions. Anyway, this fact does not affect the performance and does not eat much memory.

git-osx-installer package takes 4.3MB, but your git.bundle takes 150MB.

The problem is that the bundle contains exactly same binary 104 times (git, git-add, git-apply, etc. are identical files, 1.3MB each). These should be symlinks.

It might be ZIP's fault (doesn't support symlinks AFAIK). I distribute my apps as tar.bz2, and nobody complained yet.

Is he really shelling out for every git operation, or are those binaries just extra roughage for technical users?

ZIP on OS X supports symlinks.

I couldn't get it store hardlinks properly (using ditto). Do you know how to fix that?

corprew: the situation with hardlinks and the app size will improve over time. I just had a lot of more important things to do.

(sorry, cannot reply to you directly: no reply link)

is there a reason you can't write a script to make the links rather than zipping it up?

Thanks for the reply - I'm always suspicious of large binaries with OSX!

so is that better than gitx?

Gitbox is better because it is a pleasure to use. There are tons of little details which matter in a daily work. For instance, when you switch a branch and try to commit to it, the branch name will be highlighted to remind you that the branch was switched since last commit. If you forgot to switch back, you just cancel the prompt. This little thing instantly eliminates 50% of use cases for "git reset --hard" or "git cherry pick" and makes you happier. Also, Gitbox fetches remote commits automatically so see that you have to pull something: this eliminates unnecessary merge commits.

I'll be sure to give it a thorough testing. Thanks for your work.

I don't know why it takes that much space, but that doesn't seem like enough space to worry about on a Mac.

Some of the applications on my computer that are bigger than Gitbox: Google Chrome, Wireshark, Inkscape, iPhoto, Komodo Edit, etc. My hard drive barely noticed when I downloaded Gitbox, so practically the only difference was a few extra seconds of download time that I didn't notice, that's all I was trying to say. Your comment was helpful to the developer in the end, so kudos.

Well it looks pretty. Pretty doesn't come cheap ya know ;)

Git comes with a GUI tool. Run gitk to see commits, comments, history and diffs. I use it a lot and never needed another GUI tool.

Anyway, great to see a new tool for devs who need more GUI support.

> Git comes with a GUI tool. Run gitk

You're not an OSX user are you?

As in OS X users are less tolerant of badly designed GUIs?

That might be a factor, but no, mainly as in "tk interfaces look and behave dreadfully on OSX, as do pretty much all X applications but even more so, when they accept to work at all".

* Even from on a hot start, gitk takes almost 5s between invocation and startup (on a 2.4GHz MBP) where GitX takes roughly 2s on a cold start (cold-start gitk takes on the order of 10s).

* X applications don't behave in OSX: Divvy's resizing doesn't work, shortcuts don't work well, the menus are all broken (and the "OSX Menu" is that of the X11 application rather than the application's own), etc…

* X applications look horrible, even if you discount the clusterfuck that their interface might be, they redraw poorly and slowly, the areas "bounce" and the transitions tend to not "look right", and the whole widget set looks terribly out of place.

Compare: Gitk http://imgur.com/9mtGu.png, GitX http://imgur.com/xS2DI.png gitk looks like I'm back in 1993.

Ah yes, I keep saying "GUI" when I suppose I actually mean "look & feel".

Not sure if this is what the OP was getting at, but typing 'gitk' in my OSX terminal nets me "segmentation fault" and has for some time.

While it's nice to see native Git apps taking off like this, I don't think this app is mature enough for daily use yet. Having to leave the app for a diff is too much of an interruption.

I like that the author is paying attention to little details, and I'm sure he'll improve the app over time, but right now I'm not seeing $40 worth of value over GitX.

Can anyone compare this to SourceTree? http://www.sourcetreeapp.com/

which appears to support git and mercurial as a native MacOSX app and only 8MB download. Both appear to be too early of a release for me to shell out $40 for.

Thanks for sharing the link. I have commented earlier on SmartGit, the same ideas apply to SourceTree as well.

PS. The size is almost a non-issue since it does not affect performance and you don't download the app every day. Anyway, the size will go down in the next updates.

I was going to post about sourcetree. I downloaded the trial, it's pretty good. It's written by the author of ogre3d. You should check it out.

holy crap. this might actually get me to finally make the jump from hg to git.

Sorry, but that just looks confusing. Easy to stick with the shell tools.

i recently downloaded a big pile of them... gitx (the development build) is by far the most feature rich one that I tried

Great job. Simplifying git into an intuitive and usable UI is really challenging, and I think you're on the right track.

The toolbar is great. It's very clear what's going on, what branch you're on, where you're going to push to, and how to push to another branch. Collapsing branch checkout into the local branch popup menu works really well.

Collapsing history and local changes into one list kicks ass; probably my favorite feature/design decision. Fetching ahead of time and showing new commits to be merged, along with highlighting new commits to be pushed, is probably the best thing I've seen done in a version control client.

I'm not a fan of checkboxes for staging. I was bummed when Xcode 4 went this route with their new git integration. But I like that select files -> commit does exactly what you expect, staging selected files automatically. Cmd-return to commit is great.

Here's some constructive feedback on a few details:

- It's unclear how to add a repository. File -> Open works, but this interaction feels broken because it's not a document-based app. It's a one-window collection based app with a source list. So the copy should read File -> Add Repository. But this should also be accessible in the UI. I dig the simplicity of the UI, and that there's no bottom bar chrome (which is challenging to achieve), but in this case there really should be a [+] button for adding repositories. I can understand the choice to not go that route, but it's a standard UI convention for source list based apps, so users expect it and are confused what to do without it.

- A source list should never resize with the window. The source list should stay fixed while the content view resizes with the window. And in the case of an NSSplitView with three panes, one should probably resize while the others stay fixed; this isn't as much of a rule, but it feels better in the UI. I would resize the middle view (which is usually standard), because it's most likely that the user wants to read more of the commit messages, apposed to the changed file list. This behavior is pretty standard, and definitely expected with the source list, but you don't get it for free from Cocoa. You have to resize the views manually with an NSSplitViewDelegate method. I noticed a few apps hit the market recently that missed this UI detail, presumably because it's not clear how to do this. Here's a simple example for a two pane, source/content split view. http://pastie.org/1346451

- The changed file list is a pixel south when you're viewing local changes to commit. With AppKit controls like tables, outlines, split views, etc., you sometimes have to push them a pixel into their container views, because they draw their own borders and when you have one inside the other, you can end up with multiple pixel borders. Or it's just off.

- Keyboard support is supper important with this kind of app. This is more a feature request, but I expected the left and right arrow keys to navigate me from repository to history list to changed file list and back. This interaction would speed up workflow tremendously.

- There's no reason for the source list to be collapsible, especially because it zeros out the source selection and kills the content view, but the content of the changed file list persists. This feels broken. There are some NSOutlineViewDelegate methods to tweak this and get it to show up as a section header, iTunes style.

- Prefixing the repo name with the parent directory is an interesting design decision. To me it feels a little broken because the repos are reordered in a non-alphabetic way, respecting their parent folders instead of the repo's folder name. It works well when it's /company/project, but feels busted when it's /some-folder/project. If they're not listed alphabetic to the repository folder, they should probably be user reorder-able.

- The icon is under-polished, but I like the composition and style.

- The diff is the deal-breaker. If this app had a built-in diff, I would say it's one of the best version control clients I've seen, even at it's early stage and under polish, because the simplified interaction is really good. Add an inline diff as soon as possible.

I'm working with a team on a git client as well, and we've spent a considerable amount of time iterating interaction ideas, trying to find simplified was to expose the power and flexibility of git, and in places have come up with similar solutions. Honestly, it's hard. So mad props for making a three button git app. It's really impressive. Keep at it.

And don't listen to nay-sayers. Feedback is great, but all we can do is look for the useful parts of it, and not get pulled down by the rest. I've spent a fair amount of time looking into the potential user base of git clients, and it's a really wide spectrum. Hardcore cli advocates are sub-set.

Thanks again for the feedback. First week after the 1.0 release I was busy working on improvements and have addressed many of issues you describe.

1. In 1.1 File->Open menu is renamed to Open Repository. Add button will appear in a totally redesigned window layout in the next releases.

2. Source list resizing is fixed in 1.1

3. I have removed the standard headers from the changes list which fixes the problem. This view will be greatly improved later, though.

4. Yes, keyboard navigation is crucial. Now you can navigate between all the panes with arrow keys. Plus, jumping through the list of repos or commits is optimized.

5. Source list collapsing will be addressed later. 1.1 fixed the issue with persisted changes list when no repo is selected.

6. Repo organization will improve in one of the nearest releases.

so, iam on ppc, will you provide 10.5 in the future?

Unfortunately, no. Gitbox is designed on top of GCD and blocks which are available in 10.6 (which is Intel-only). The tradeoff is worth it: with GCD I was able to implement sophisticated control flow cleaner and faster, and fix a lot of bugs.

i see =/ well, ppc is drifting slowly out. but iam looking forward to buy a intel mac in the future, hopefully your application is still maintained =)

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