GitHub for Mac
github.com
github.com
Some feedback:
* Get rid of huge spacing everywhere (for example here: http://github-images.s3.amazonaws.com/blog/2011/mac-screensh...)
* Make animations go faster.
* History should have preview pane with diffs (see Mail) instead of making me click on commits.
* There are windows on Macs. You can use them instead of [edit: or in addition to] making me navigate inside a single window.
* Loading indicators are annoying. Move them to bottom (there it won't distract me, but I'll know that it's still loading).
Oh, and congrats on release.
However, +10 for "Make animations go faster".
That said, creating a desktop interface for GitHub is a brilliant move. Bravo!
But you're right that you can avoid using multiple windows in the app if it's good for usability. My point is that currently it's not possible to have two repositories opened simultaneously; especially since on OS X it's difficult to open two instances of the same application.
(As an example, in Mail you have previews in a single window, but you can also double-click the message to open it in a separate window).
Layout: All-In-One
"This layout provides virtually all operations within a single window, such as editing files and project content, filtering in the detail view, viewing the build results and build log, and debugging".
Other than the APIs for fullscreen support, there's little that can be said without violating NDA. Other Apple applications have gone single-window over the years; Logic merged its windows two major versions ago, and Final Cut Pro X just did the same.
Steve Jobs has always preferred single windows. Before OS X 1.0, the toolbar button was instead a toggle for single window mode.
1. Let me enter an email address separate from my GitHub account. 2. Automatically found git repos on my system. Let me pick which ones to use.
My only two requests are:
1. Show untracked files the way git does, where if a whole folder is untracked, it only shows up in the list once, rather than showing every subfolder and file inside it.
2. Handle submodules better: let me see the submodule changes in a commit, let me browse and commit submodule changes and the commit the parent.
Also, you should let some of that angst go, because it's clear that Apple is anticipating an iOS experience on the desktop for a long time coming.
I think there's a misunderstanding. I'm not against single windows, I'm against making me navigate through screens when it's unnecessary.
Also, you should let some of that angst go, because it's clear that Apple is anticipating an iOS experience on the desktop for a long time coming.
Apple is anticipating better GUI experience. It doesn't mean that they'll make all apps occupy a single window with a single task shown at a time. Notice the difference between iPhone Mail and iPad Mail clients.
1. Floating inspectors drive me bananas unless they can be pinned in the app "wrapper".
2. A new window for every document makes me crazy, because I like to use tools like Witch for doc-level tab switching.
3. The push away toward full screen apps and in-app file management is, IMO, a good thing.
I'm with you here, mostly. iCal's switch from sidebar in 10.4 to popups and floating inspectors in 10.5 is painful. On the other hand, Acorn's floating tools window is good.
2. A new window for every document makes me crazy, because I like to use tools like Witch for doc-level tab switching.
I'm not so into tabs for documents, but can't live without them in browsers.
3. The push away toward full screen apps and in-app file management is, IMO, a good thing.
And yes, and no. It depends, as with other points. I'm glad that now Mac apps are not locked into multiple windows/floating inspectors for everything, but "you have a single window and you can look only at one thing at a time, deal with it" is also not the panacea.
1. Floating inspectors: Inspectors in general are getting better and I definitely prefer when it is well integrated into the view without interrupting my flow. They have a good start; further work is needed (not sure what though)
2. I think even tabs are a mistake now. We learned a lot from iOS about how to well integrate multiple views into a seamless interface. Tabs are kind of unnecessary imho now; we need something better.
3. Full screen isn't what I think the best aspect is - we do want to be able to view different apps at the same time. Case in point: - I have this chrome tab open on the right hand side of my iMac monitor - 3 terminal windows on the left hand side - My vc pitch in PPT on my second monitor's right hand - My PPC ad management software open on the second monitor's left side.
Restricting to one screen for an app isn't the right way I think, but an in-between method is. Funnily enough, I think Windows 8 almost nailed it.
As for in-app file management: YES. iCloud, Dropbox and a myriad of other systems all working together have such potential. I can't wait.
When I first fired this up, I made a tarball of one of the repos I'm currently working in (it has uncommitted changes) and started clicking around. I'd do something in the GitHub app, then go back to my bash prompt to see what happened. I was pretty confused when I switched branches and all my changes were gone. Then I went back and read the blog post. It auto-stashes when you switch branches. I also wondered what the heck the "Synchronize" button does, so once again, I referred to the blog post. It performs what they call a "smarter version of pull --rebase && push that reduces merge commits but doesn't rewrite your merges". Oh, really?
At that point I realized that GitHub has done the hard thing. They haven't re-created the git CLI tool in a GUI, they've created something different. They've created a tool that makes Git more accessible. Little things like auto-stashing when you switch branches will confuse git veterans, but it will make Git much easier to grok for newcomers because of the assumptions it makes about your git workflow.
I see great things in this app's future. It's probably not for everyone. If you're a proficient git cli user, and you like it that way, then you're probably best off sticking with what you've got. Maybe explore some of the more traditional Git GUI clients like GitK or GitX, but keep in mind, that's not what this is.
I'm mostly discussing GUI trends (as a Mac developer who cares about this stuff), using GitHub as an example (which, as you say, gets job done great, but I say that it can be improved).
"You argue"?
Clutter means (let me open the dictionary) "a collection of things lying about in an untidy mass".
I never said only spacing produces clutter. Either I'm not explaining myself clearly or you read something that was not in my comment (this is called a strawman, right?)
No hostility meant by "you argue". You provided a critique, an argument. I'd open the dictionary... ;)
His posts were completely non-hostile, so aren't you overreacting?
The rest of my reply was pointing out how I perceived this to be different than GitX, which was tangential to the point, but I didn't really think a separate reply was required. Sorry for the confusion.
Everyone I know uses a different fork, much to my dismay.
Notably, SourceTree (what mainly use) and Tower (if the incomprehensible one-repo-at-a-time limit isn't a dealbreaker) now compare favorably to gitx in most ways.
So I don't recommend gitx anymore, but from what I hear Gitx (L) is a fairly active and popular fork:
I use GitX for committing and browsing and the command line for the rest. None of the GUIs have blown me away yet, but deep GH integration is a big plus for me so GH for Mac might join my workflow.
Git seems to have broken down the social contracts around forking that kept most opensource projects cohesive. Unless the project has a great deal or inertia, it is difficult to remain the canonical source, and the project effectively disperses.
If you think about it, this is basically 1) a marketing problem and 2) would be solved instantly should GitHub introduce a better 'network' visualization.
- Projects should be top-level in the github namespace, not people.
- Forks should live underneath their source project, and should not be top-level projects themselves.
I think overall this is a very nice product, even though some of the loading is a wee bit slow (even on an i7 iMac). It adds a very nicely done, easy to navigate interface for the times I want to visually manage stuff.
9/10 times I'll use the command line to do stuff, but this makes other aspects of code management go much quicker for me.
Solid 7/10 from me.
If you've ever used Quickbooks, you'll understand the pain they're looking to avoid: http://www.quickbooks-software.co.uk/images/quickbooks_scree....
Some people actually like interfaces to be aesthetically pleasing. And whitespace is one of those things that really helps to make ui usable and clean.
* Finder in 10.4: http://miki.samborsky.de/files/article/2008/LeoIcon/Tiger-Fi...
* Finder in 10.5-10.6: http://www.askdavetaylor.com/3-blog-pics/mac-finder-places-m...
* Finder in 10.7: http://gavinsmith.me/wp-content/uploads/2011/02/Screen-Shot-...
And whitespace is one of those things that really helps to make ui usable and clean.
You missed "the right amount of" before "whitespace".
And I assume github is targeting SMB with its paid offerings. Unless you're a design shop or a hip startup, odds are you're not running OS X. Based on my unscientific data, most companies have the devs working on Windows (or occasionally Linux).
They are the latter. Welcome to the San Francisco bubble, where you think everyone uses iPhones and Macs, because in your world everyone does. It's the same reason Twitter has a Mac app but not a Windows app. They build these things for themselves (and arguably they should).
It's not outlandish or absurd to design something you might want, but it is a bit silly to ignore a larger market with the same underlying need.
> Beyond that, one-third of our traffic uses Macs. It's not a small market for us.
And as others have pointed out, the market doesn't just consist of GitHub users, or even Git users. In this case, it's developers who use an RCS and need a good desktop application to go with it.
In any case the point may be moot; judging by the rest of the comment you quoted they're not ignoring other platforms at all but rather just using Mac OS as a first step, which I can understand.
I'm now at another giant company you have all heard of. We all have macs and are using github.
The tides are changing.
In respect to the Windows question, I wouldn't be surprised to see them ship one in a few months, once they iron out the bugs and determine exactly which set of features a native client needs to provide.
Everyone's all cuckoo about Chameleon because it lets you port iPhone apps — but the real win is a fully layer-backed environment with modern APIs (UIKit).
Our decision to use it has nothing to do with iOS at all.
http://www.survs.com/WO/WebObjects/Survs.woa/wa/shareResults...
1) there are many Windows devs out there who require a VCS 1a) ...who will only use a GUI-based VCS (seriously)
2) there are many users of other VCSes (e.g. Subversion)
These are big markets waiting to be tapped. The answer is not "don't try if nobody else is tapping them". Hacker News is the last place I expect to hear that!
If someone made an app like Tower but for windows and charged $50-100 for corporate licenses, they could make a killing.
Which looks like where they're going with this.
But I personally think the value in a Windows client would be in bringing new people to github more than satisfying existing users.
I can honestly say I do not know a single dev who uses windows for development, everyone is on Linux or OSX. My unscientific data is probably as good as yours. So I wouldn't be surprised if they looked at their browser data and realized OSX was a pretty big market.
Beyond that, one-third of our traffic uses Macs. It's not a small market for us.
But I just switched from self-hosted SVN to Github and it was painful for our Windows devs. Offer a stupidly easy upgrade path from TortoiseSVN to Github and I would have joined a long time ago. In fact I'd pay extra for that. I think I am not alone.
I access my repo from home on my mac.
Crag do you mean GITHUB, the website and service, overall, or just GIT the version control system?
Is this it? Is this something else? Is that project now doomed?
http://www.kickstarter.com/projects/sferik/hubcap-a-github-c...
https://twitter.com/#!/sferik/status/83585135836016640
https://twitter.com/#!/sferik/status/83588359066353664
Thought it was interesting that Hubcap was in the first screenshot on the blog post and @kneath himself was a backer of the project, meaning that he's had an inside look into the development of Hubcap while they've been creating Github for Mac.
Conspiracy theory I know, but I thought it was interesting at least.
Couldn't find that info in either the announcement post, GitHub for Mac page, or the 118 comments so far here, and don't own a Mac so can't try it for myself (still would like to know whether to recommend to other people or not, though).
It's more than useful without ever using GitHub the web service/site.
Whose is its target audience and the desired function? New users, to reel them in with a shiny UI? Or established users who don't use it much, to make the experience simpler? (And if it's established users who use it much―isn't the command-line faster for them?)
If they want more users to use GitHub, surely a GitHub for Windows makes more sense (unless this is an employee's side-project gone primetime).
I mean, it's not as if GitHub don't have Windows instructions... http://help.github.com/win-set-up-git/
https://github.com/blog/878-announcing-github-for-mac#commen...
josscrowcroft commented about 16 hours ago
Holy crap! Cool!
All that time i spent learning Git from the command-line, WASTED.
There is no doubt, a new generation of Hacker is emerging, where yourself the command-line-fu is a waste of time.I don't believe a GUI can remove that without making git lot less powerful.
I hope they iterate on the staging/commit UI because, as is, I'm still going to use GitX to preview and selectively stage things. Some suggestions:
* Get rid of expand/collapse and checkmark pattern. Let me see two lists of files -- changed and staged. If I click on one, show the changes.
* Staging by chunk & line.
* Squashing with the previous commit.
Windows: TortoiseGit?
I know that Lion will be dropping support for us 32-bit Mac users, but it still sucks to see apps jumping on that bandwagon so quickly.
(Related question: does the API work on Github:FI? It doesn't seem to, but I may be dumb.)
FI needs love. :(
Great stuff.
This is great for beginners and pros. Thanks.
Edit: Also would love to see this integrated with notifications so I can get Growl popups.
I use GitHub's issue tracker in volume both for some fairly large projects (getcloak.com, walkscore.com, and wherebe.us) I've found that the Issues web interface leaves a lot to be desired. It's a fine v1 [v2 technically], but somewhat painful in practice once you have more than a handful of issues. The 280 North issues app was interesting but hasn't kept up with the latest GitHub features.
As for Growl: it would be great to have it built in. In the interim, there's this: https://github.com/miyagawa/github-growler/downloads
There are already plenty of okay Git GUI clients out there to manage your repository locally, but what I miss is the ability to edit (and preview!) the wiki locally. You can sync the contents via git, but then you are left with editing the raw source files directly.
While it's beautiful and a great first version, I don't think it really provides anything that GitX doesn't already do better. I can see how this tool might be valuable for someone who's intimidated by git, because it's hiding a lot of what's going on. But in it's current state I wouldn't use this for more than training wheels. If / when they add pull request support and other Github specific features I might come around.
One thing that Tower can do quite well is dealing with multiple remote repositories (e.g. github + heroku). If GitHub for Mac does that as well, I believe I'm going to switch to that.
The feature set it comparable, with the biggest missing feature being individual file rollback. Tags and stashes, as well, do not seem to be supported in github for mac. Perhaps I have simply not found them in the interface yet.
In terms of workflow, performing tasks in github for mac is more cumbersome. The gui, while nice, does not fit all that well to a fast git workflow. You must wait for panes to load separately from one another, so one code review and commit may involve loading several panes. This is much different from Tower, which tends to keep most tasks present in the main window. In a dual-monitor setup, Tower works well when occupying a screen, while github for mac would be wasting space if used in that format.
The history browser, too, is quite simplistic. Tower can render commit history in the way that github for mac has chosen to do it, but I prefer the way that gity and others have allowed a history list and commit tree. One thing I like about Tower is the ability to scroll down a commit history and instantly see the diffs of that commit. With github for mac, you must click on a commit and bring up the diff in the whole window -- which seems a symptom of its non-multitasking workflow.
At this point, I could not see myself using this over Tower in any project scope, though this is of course tinged by my experience with working with Tower. It is very nice that github for mac is free, and having more offerings in the space is going to be great for innovation, but I do wish they had taken a different approach with their interface. Perhaps more to like will come of further use.
GitHub.app seems like it's trying to take some of the complexity out of Git for beginners. For example, I'm looking at the "Changes" tab and don't see a distinction between staged and local changes. There's just a "Sync Branch" at the top that presumably does a pull, you don't get to have multiple remotes, just a "primary remote repository". No --rebase on pull, either.
Basically it looks to me like GitHub.app is trying to make common scenarios a lot easier to understand, but you have to go elsewhere for anything even slightly outside the lines. Could be the right tool for getting Git newbies (or even VCS newbies) onto the Git/GitHub wagon, especially for those who don't aspire to ever be Git experts. But heavy Git users, I'm guessing, will not be tempted.
If I made a windows desktop client for a popular website, would anyone at all even care?
Github (the website ) is great, it works well.
The thinking that a website is a poor substitute for a native app is increasingly outdated. Github is an example of this, it does a lot on the web.
What extra does this app bring to the table? What does it make possible or easier that I can't do on the website or in TortoiseGit?
I agree, and not really enough actually -- they seriously need to work on their UX and it's disappointing that this is the direction they're going.
I'm still not getting the Unique Selling Point. Or is this just a case of the intersection of Github fanboys and Mac fanboys? Once both of those factors are removed, I'm not seeing the magic.
The big problem is that it will only work with the origin remote [1]. This means no pulling in upstream changes, then pushing it to your fork - doing this on multiple branches with the command line is a pain, and something a GUI would be great for.
The interface feels a little half baked too, e.g why the multiple overlapping sidebars - one blue, one black, why not just merge them?
I'm very, very happy that GitHub is doing this — but I also have high expectations and I do expect the app to improve significantly.
But thier web app is great.
What's the big deal about a desktop client that wraps a great website?
On the announcement they say: > But those things are only great after you've pushed your code to GitHub.
With the desktop app you can manage your local repository before pushing changes to github
It also does not hurt that the app defaults to use GitHub, though it does seem like you can use remotes that are not GitHub (see repository -> Settings).
On another note, I wonder if this is another example of how native applications are gaining momentum on the desktop as a carry-over from the mobile apps industry. Perhaps, more companies will begin asking the question "if native apps beat web apps on mobile devices, why not on the desktop as well?"
Having said that, I still use it from the command line just fine. And you're right, it's often the case where a version control tool like git requires something more visual (especially when dealing with out-of-sync branch merging). For that I've typically used GitX, but GitHub for Mac so far looks like a really nice alternative.
I am planning to start using it though so I wanted to ask, should I stick to the terminal or am I making a big deal out of nothing?
Now, when will we be able to stage parts of files like we can with GitX? ;)
Any plans for putting it in the Mac App Store?
Watch out!
For seriously using git for development, I find that pretty nuts.
Every time I want to browse a different repository, I have to destroy all the work I did opening the window for the current repo and drilling down through the UI to get to the part I am interested in? Seems crazy.
I think more apps would do well to learn from the windowing strategy of Mail.app on Mac. It too has a monolithic main window where everything happens--but Cmd-Opt-N creates a "New Viewer Window". Another complete window with all the power of the first. Search for foo in window 1, read mail list bar in window 2.
This sort of arrangement would make Github for Mac (and Tower) worth looking at.
As it is, if I have to throw away several seconds of work every single time I open another repo, those seconds are going to add up -- and annoy me -- very quickly.
(By the way, just to check, I tried out making a few copies of the app and opening multiple repos that way. Just like Tower, the app started to puke modal error dialogs and show blank windows, so that doesn't work.)
I am going to investigate this for my GitHub project.
I can understand that OS X probably has the biggest share of GitHub visitors, but git is fully open source, GitHub seem to very much like open source, and in the spirit of that I'd expect a native app that works on as many platforms as possible.
The definition of native app has changed. It's no longer a synonym for compiled binary; or using native widget. It is not as simple as coding your UI in a cross-platform toolkit. In these days, a native app means something that feels like the built-in apps: it's beyond skinning and appearance and is more about how the app as a whole interacts with the user to get the job done. As the platforms diverge, it's now really hard - if not impossible - to make a cross-platform native app. Among Performance, Cost, Time, Scope, you can only pick three. GitHub sacrifices the scope.
Apparently, GitHub chose to do best they can for one platform instead of something that is merely good enough on few platforms.
Sure you can build cross-platform stuff using Java or QT, but has anyone actually liked the stuff that came out from that?