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.
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.
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.
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!
For such people, Github is ridiculously expensive, since their price is based on the number of repositories you have. For instance, at work we've got enough repositories (all small) that we'd need the $200/month Github plan. In terms of storage costs, that works out to about $10/megabyte/month.
That's 5 ORDERS OF MAGNITUDE more than the market rate for cloud storage. When you are selling something 5 orders of magnitude above the market rate, there is room for competitors.
I don't contest that there are probably people who only need a remote git repo and nothing else. But those companies that would service them either compete on features or get pushed down to wholesale cloud storage prices, a place you don't want to be unless you're Amazon.
Paying for a service that can double or triple a developer's productivity - people say the UI on BB is still not as great, so that counts for something - must at some point justify that developer's time.
If you have enough repos that you'd need to spend $200 a month on a platform that offers:
- Wikis
- Basic Issue Tracking
- Source Control (and damn good source control at that)
- Integration with many popular startup tools
Then maybe your startup should be out of business. I could shit $200 dollars and pay for my companies hosting.Trying to skimp on this is like telling your 10+ dev team to use google talk for offline coordination. Yes, you save money on chat, but you lose all that time I waste copy-pasting and coordinating chats between multiple devs.
http://www.atlassian.com/software/stash/pricing
Contrast with Github where the minimum purchase is 1 seat pack (up to 20 users), costing $5000/year, and you don't get any access to the the source code.
It does not have all the features of github or bitbucket but is selfhosting and opensource.
(I am just asking since it seems to be a selling point, and I have never really modified the code of a tool that I have used. For example, how many people modify Eclipse, or Maven, or BugZilla's source code?)
Having the source is critical to develop tightly integrated plugins for customization.
EDIT: We are not a startup, but still something to consider.
1. Find the little "Source" link and click it.
2. Find the "Browse" link, which is in a little toolbar right under the other little toolbar, next to the (less relevant) "Changes" and "Clones" links, which look visually near-identical.
3. In most (but not all) projects, hunt down the word "trunk" in tiny 13px text, and click it to see the main development branch.
Compare to GitHub or BitBucket, which just show you the damn code.
(Yes, I know you were joking, but I've been wanting to rant about this UI failure for a while now. And don't even get me started on Launchpad.)
After five years or whatever of being tricked into clicking Launchpad links, I just noticed the other day that they have a "source" link on the top left corner. I had no idea they actually displayed source code. I always thought it was some crappy bug reporting product. Who knew?
Hah. Got you, it's also a crappy project-hosting product, a crappy code-hosting product, a crappy code review product and a crappy FQA/Q&A product. And an acceptable translation product (not as good as Transifex, but it's free, bit it requires using the rest of that crap).
That's a pretty low bar to set though.
> and it handles bugs that affect multiple projects really well
Kind-of, changing the project set (outside of adding projects to an existing bug) might be impossible (same with in-project "series" — its code for branches), until fairly recently the role of some statuses was very unclear (and I'm still not entirely sure of their actual use), one of the links is essentially useless and — as everywhere else in launchpad — text formatting is completely non-existent (without even talking about richer data sets, such as adding screenshots to bug reports which falls under "add attachment or patch").
Multi-project and multi-branch tracking are nice, but they're limited and they don't make the tracker much friendlier.
Bitbucket nails the private project space; so for small dev companies they are perfect.
I've been a BB user from early on and they have successfully focused on this niche for some time now.
I'd say both are equally perfect options for their respective usage :-)
They're well known for their wiki, Confluence, and their ticket/issue/task tracker, JIRA. Source control is a natural extension of those tools, which I'd guess have had some effort put into making sure they work well together.
Looks like Stash is what they sell to enterprises, versus BitBucket which is hosted. Anyone know if these are completely separate products, or if they share a common codebase?
I've found SourceTree to be a great GUI tool for working on Git/Mercurial repos.
All of which is to say, good on them. I'm glad to see two very respectable players in this space.
Two separate codebases. Bitbucket is running on a Python stack (Django) and Stash is built on a Java stack (traditional Atlassian stack). Stash can be extended through plugins (https://marketplace.atlassian.com/plugins/app/stash/popular?...)
I would gladly use more products by them
People have been begging Google to pay them! https://code.google.com/p/support/issues/detail?id=1829
What kind of source control do big corps use? Don't they just use SVN, with enormous budget for maintenance contracts?
(TFS obviously for Microsoft houses only.)
* Free private repo for small teams
* Unlimited private repos for pay customers (price is per user)
Github's pricing with a limit in the repo number makes it pretty much impossible to use if you're in the service business and you start a new project quite often. It may be fine for the startup with one main project, I guess.
I think there is still a chance for BitBucket to make a splash, but I think its going to be hard to win anymore. That's fine, 2nd place makes a lot of money too (not counting places 1-10 for enterprise source control, which basically print money, and of which GitHub is chasing too).