GitX is pretty good (I think I still prefer the original one over the Laullon gitx, but the Laullon gitx has an acceptable annotate view and look nice), and surprisingly the best annotate view I've seen so far is in bazaar's qt-based UI. The tools are not necessarily great overall (and the OSX interactions are downright weird), but the annotate is excellent.
That may be some of the reason that I like it. I am able to do a lot of the things that I could do from the command line, but with a visual interface to help me visualize what's going on.
For example, when I'm doing a commit, I can click on each file that's been modified and see the diff for that file right on the side. I can then stage all or just parts of the changes. So if I have some debug lines, I can stage the file and then unstage the debug logging so it doesn't get committed.
There's just a lot of little things like that that you CAN do with the git command line yourself, but it wraps up in a way that's easier to consume.
I'd have to take more time than I have now to write up a full review of what I like about it compared to other GUIs.
Let's be honest about git: A user unfamiliar with the CLI commands will have a difficult time, period. I hesitate to predict that it's impossible to create a good UX, but git is a very complicated system with an abstraction that leaks all the way down to database records. Breathe on it wrong and the repository will wedge into a state that sends longime veterans off to stackoverflow.
Yes, git is worth it... but so far every clever GUI has basically been a convenience tool for power users, not a better abstraction that can sidestep the learning curve. It's hard to see how this is going to change without some sort of fundamental change in git.
Even with fairly boring usage, the Github GUI periodically wedges my repository into a state which requires CLI interaction (and a trip to stackoverflow). It's even worse for newbies - I get desperate pleas for help from clients all the time. I have come to the conclusion that there is no way around teaching the command line first, then giving them the Github client after they achieve competence.
No, I have not tried to reproduce the incidents which screwed up my repository. After a few harrowing experiences I pretty much gave up using the Github for Mac client for anything except basic commits. And even that screws up - I frequently have to commit files twice; it's like the client only stages some of the files, even though they're all checked. If my commits are large I usually go to the command line to avoid the double commit msgs. I'm about to give up entirely.
It's still the best on OSX though.
Yes. If Github offered just one free private repo, then I would move to them in a heartbeat.
Github is still Github, after all. ("Second resume" etc.) Unfortunately current circumstances prevent me from open-sourcing a certain small segment of my codebase, and... well... Bitbucket is free, and I'm living on Ramen while trying not to worry about my dwindling savings account. So it's a pretty clear-cut choice for me.
http://stackoverflow.com/questions/1384325/in-git-is-there-a...
Instead of creating a repo per project, I create a orphan branch within a shared repo for that project. The benefit of this approach is that you can always cleanly export the commits into its own repository without altering SHA ids. The con is that you have to pick separate branch names for each project (e.g. proj1-master, proj2-master).
I moved my personal private repos to BitBucket a long time ago, and haven't looked back.
Well, when you've got a large list of things stored on a computer, and you want them displayed in a certain order, automatic sorting (after you assign a priority) is a lot more useful than having to rearrange them manually.
I mean, if you want to build a natural language parser that counts how many times the words "URGENT" and "HELP" appears in the issue and then automatically reorders it, you can do that with the Github issues API anyways, right? I don't know of existing bug trackers that make priority automatic.
You can filter based on labels in github issues, if that's what you meant.
GitHub also does a Educational plan, but it requires manual requests and IIRC they give you a Micro account. So Bitbucket is the default choice for all my shared class projects.
Same thing here. I used to pay for github for a private repo for code to a couple of apps I sell. Once I found BB, it was a no brainer to switch over.
You cost them money.
I use BB for the free private Git repos but had always planned to switch to paid Github once I actually need collaborators. Now I could see staying with BB when I need to go paid.
Looks like I can host my $22 github account for free on bitbucket.
also, it's backed up by Atlassian.
BitBucket is run by Atlassian, their goal is to later upsell you to their line of products, so they loss lead with free unlimited private repos in the hope that if you need a project management/bugtracker system you might choose JIRA.
Bitbucket for opensource things Stash for our firm's repos behind the firewall.
And i have been using github for years, paid account, like others. Paid github vs Atlassian Stash ? Stash wins.
Before you answer, consider http://www.extremetech.com/computing/120981-github-hacked-mi...
A couple of years ago I was at one of the Github drink meetups. I asked if they were working on encrypted private repos (this was just before or around the time Github Firewall was introduced). A Github employee told me no… before adding that in his opinion source code was not valuable.
I asked him to clarify and he said imagine if Twitter had their source code leaked. It wouldn't be a big issue as Twitters success was built more on business execution rather than code. A valid point perhaps but small indie developers could easily be put out of business if the source code to their unique selling point or competitive advantage were to be made public.
I'm sure Github (and others) take security seriously, but given the above, caveat emptor!