I’ve spent the last weeks asking around to my fellow developers friends why they use the git command line tool instead of a nice GUI. Years ago when I was using Linux some people were just against GUI tools, but today they’re not anymore. The reason they don’t use a GUI is there is no current application good enough for replacing the git command line.
The existing tools like Gitx, Tower, Gitk, Sprout, Gitnub are all very similar in the way they do things, they are only improved tool of a basic Gitk but nothing than actually makes you want to use it full time.
I know, you think this is a useless application, git in command line is good enough. But you’d probably say the same thing about Github 4 years ago, as you had your own servers, but it still became the de facto standard for Git source hosting today. Most of all because they added features noone thought about git at the time (easier pull, social coding, etc).
Questions coming to mind about a GUI Git application:
- Why you don't use a GUI?
- Why such a tool doesn't exist yet?
- What would make you use this tool?
- How long would it take to make such a tool?
- Would it be sustainable?
My answers:
- You don't use those GUI because they suck, if you use git you probably know what you're doing. Adding features slower to use in GUI than command line is a bad idea. You then basically run a GUI only to view branches and do visual things, once a week.
- A better tool doesn't exist because it's tough to develop, a new one need to find a new workflow, using complete different workflow than the existing bad ones.
- You would use the new tool because it saves you time, and allow not so advanced git user to do tricky things without knowing git as well. It also needs features for small groups, like push notifications when someone push code, local gitjour similar feature (share your git locally and discover others through Bonjour) for quick hackathon. You'd want a nice branch visual like the ones from github, and a commenting system similar to github. You'd want full Github support, a live activity feed similar to BaseCamp listing commits, new comments. You'd want a light chat to reply live to commits, only for developers. You'd want more than just a git GUI.
- I think a beta version of such a Cocoa tool would take 3 months full time to get a beta, 6 months to get something working on a daily basis, for a team of at least 2 very good developers. There is a lot of thoughts to put in the design first.
- I can't say, but seeing github is bigger than Google Code and Sourceforge, and everyone in San Francisco has a mac laptop as a development laptop, I have the feeling such a tool, if popular, would be sustainable for a team of 3 people full time. San Francisco is a lot about trends, if you can make such a tool popular among a few top developers, there is a big change the others would follow.