Bitbucket passes one million users
blog.bitbucket.org
blog.bitbucket.org
I don't have any experience with Bitbucket yet other than making an account and poking around with the interface, so I don't really have a frame of reference, but GitHub does seem to do the above things quite well in my relatively limited experience.
GitHub is much more organized around community and public feedback (search, stars, comments, etc.), than BitBucket. IMO, neither is claiming to be something they aren't. It just happens that for private repos and hosting where the focus isn't discoverability or community-driven, BitBucket seems like an easy choice. However, if you want to integrate with communities or popular open source groups/code - GitHub is probably a better option.
They're both great overlays for Git, it's just important to keep in mind where their core focus is. For GitHub, community is clearly a front-runner. BitBucket is more focused on private repo options and process management/tools.
I put some sweeping claims in this comment, but there's a lot of really good data in this post to supplement.
- bitbucket wants enterprise developers to use it. (so it must be free for the private repos the enterprise needs). It's a gateway drug.
- github wants its offering to be directly valuable to its users (which might be open-source, startup, small, medium or enterprise team).
This predicts that github will be a better as a whole package (including issue tracking etc); and bitbucket will be great for git itself. But there's also much commonality: they both want to attract new users; "viral marketing" (in the sense of social projects pulling more people into the ecosystem) is helpful to both. But I think bitbucket sells itself as "free private repos* so there isn't really an overlap.
I predict that bitbucket must not become a viable alternative to atlassian's paid offerings; but github isn't restricted in that way (of course, they might well add paid offerings).
It seems there's also a danger for bitbucket: if users adopt their issue-tracking etc, it might be painful to upgrade; and so users might as well switch to github or other. Bitbucket should have an auto-upgrade (or, I guess their present issue tracking could evolve into a freemium model... that probably makes the most sense).
Also, with the startup edition you get Fogbugz, which is pretty decent - and certainly lightyears ahead of github issues.
Note: I have no relationship with FogCreek, but I've added a few personal projects there and so far I have no complaints.
I used FogBugz for about 6 years in a major client project (a successful SaaS product). We used FogCreek's hosted solution and were pretty heavy users: different projects, milestones, feature requests, user communication, etc. However, we were unhappy with FogBugz. The UI always felt clunky and slow to navigate, it felt like we were battling FB rather than getting help from it. In particular, milestone / release management and issue grouping were painful.
Then late last year we moved our repos to GH, and decided to look for another issue management system. We evaluated several: JIRA sucked hard imho, JetBrains YouTrack was my favorite full-featured product.
But then we decided to give GH issue management a try. It is minimalist and surely lacked some features, but hey, if it could handle our needs, the simplicity would be a huge plus.
A few months later, _everyone_ in the team is thrilled: devs, testers, support personnel. Using milestones and labels we have been able to manage more people and more work on GH (we're growing) with less hassle. It feels much friendlier than FogBugz. Now whenever I create / solve / assign / organize issues, I feel happy, whereas before it was a dreaded chore.
YMMV of course, but I wanted to give my 2c since I do have a lot of experience with both issue managers.
Have you used the GitHub mobile apps though? I find it's a decent way to keep tabs on issues, add comments, etc., when one is away from a bigger computer. I see that as a big plus for GH.
I haven't used bitbucket for larger projects yet, any insights there also appreciated.
The UI and milestones, though, I think are good. JIRA is to me the king of clunky. I've used it in 3 projects over the years and evaluated it last year, and I've been pretty disappointed with it.
To borrow from another comment here, it has a bit of a Bugzilla feel, like it just grew and grew, and you have tons of fields and features, but they're poorly designed and put together. A bit of a mess, to put it bluntly. FogBugz has a similar feel to me.
I encourage you to check out JetBrains' YouTrack. I never used it in a project, but a couple days evaluating gave me a good impression. Good luck with your search.
btw, I don't think that there is necessarily anything wrong Milestones, but there are always too many clicks involved in the GH interface and the buttons are often not where I expect them to be -- even when you have something that works well (i.e. dynamic adding of tags that automatically updates the DB), there is frequently no indication of actual success, which ends up puzzling the user.
Thanks a lot for the suggestion for YouTrack, will definitely check it out.
I use GH for about 12 hours a day almost every day, between open source and client projects. I face slow downs in the issue tracker, the git repos themselves (I only use command line), and the web interface to browse a project (code, history, pull requests). I notice a slow down about once a day. Some features, like the contributors graph, are always dead slow. About 10-20% of PR merge attempts fail, and I have to click the button again, sometimes multiple times. I see the Unicorn fail page or some Octocat fail page often enough.
It makes me think exactly of what you describe, a combination of Rails perf / scalability and perhaps a lack of strong backend engineering, I'm not sure.
Right now the problems are in the level of a mild annoyance / surprise that a company like GH has these issues. If it gets worse, I would consider moving away. But because I truly love the UI and overall functionality, it's a positive tradeoff for us at the moment.
You're very welcome regarding the YouTrack suggestion.
After toying with different solutions, we settled on using two dedicated issues-only repositories. One of them handles software development (all bugs, feature requests, the engineering stuff) and the other handles operational stuff like client installs and so on.
This has worked well for us. Here are some advantages:
0. We get the big picture you mentioned, which is the crucial point. Planning, grouping issues for releases, etc., becomes much easier.
1. When it comes to access security, we can give people access to the issues repositories (via GH teams) without giving them access to the full source code.
2. Splitting operations and engineering increases focus. Engineers don't need to look at client installs, etc.
3. We can still reference repo issues in commits to other repositories. See [0] and [1]
So all in all, I agree the fragmentation is a real problem, and I think centralized issues-only repos are the way to go. Hope this helps.
0: https://github.com/blog/1439-closing-issues-across-repositor...
Personally, the Fogbugz flow and implementation is way too reminiscent of Bugzilla for me (a bug solution that I think is tolerable at best), but I think that's mostly due to my limited experience with the tool.
Nonetheless, FogCreek's tools definitely deserve a mention in the context of this discussions.
If one of them has a public domain name or IP, or they are both on the same LAN (likely when one is a laptop and they are owned by the same person), then it's simple to communicate via git.
But, it wouldn't be so easy for, as an example, you and I to share code between our laptops in different time zones, unless we used a stable server somewhere.
Just opened a new account at Bitbucket and am going to start doing this.
Public repos on Github, Private @ Bitbucket. This is brilliant.
It's a free offsite backup, and if you ever need to add another machine (or developer) to the project, your code is already sitting there on bitbucket. And you never need to worry about firewalls, NAT, one of the machines being off, whatever, because bitbucket is (almost) always up and accessible. And if you forget to push after working, or if bitbucket is down, you can still fall back to your existing workflow.
In addition, if you're doing anything web based, sooner or later you'll need to deploy to a sever out on the internets. Being able to pull from bitbucket makes deployment really easy, again without tinkering with firewall ports or anything.
It's not so much a question of "need" it's "why not do this thing which has some benefits, and no real downside?"
JIRA is pretty sweet to keep things in order.
Really? I use and love BitBucket, but the last 2 places I worked at used JIRA and it was the worst project management tool I've ever used. I'm sure someone will say they didn't configure it right or educate the devs or something. Seriously though, it was pushed down from upper management in both cases and it was a terrible experience. Then they thought Greenhopper would fix it, ha. (This was about 4+ years ago)
Edit - According to the comments below it sounds like my experience was a result of trying to do too much with it. I just might play around with a bit just for some bug tracking with some of my BitBucket projects.
Project management software is difficult, you either have a mess of features that don't work well without customization, or you have few features, and force teams to model their workflow around your features.
In the context of this post and the greater bitbucket vs github discussion - do you find GitHub issues to be better than JIRA?
Github issues - bare bone basics, but I hear they're working on improving it. You cannot currently run something like a Kanban board off of GH issues without outside assistance.
For simplicity, boards like Trello and AgileZen are, IMHO, in the lead.
I have a billion opinions about JIRA in general, but I doubt anyone is interested besides Atlassian. ;)
Personally I think Jira is a great for issue/bug tracking when using bitbucket.
Because while I'm not a huge fan of JIRA (I've only used it in the past year so I don't know what it was like 4 years ago), I've unfortunately seen much worse.
One system that I'm curious to try is called AtTask[0]. They're located here in Utah (just down the street from me!) and have quite the lineup of large customers. I don't personally know anyone who uses them though.
Also until recently, from Melbourne it took just under thirty seconds to load a page, any page, from scratch. Sending 2MB (for a while it was 4MB) of uncached JavaScript on every page load helped with that. Quite why one would use Ext 3, Ext 4, YUI and a couple of other libraries all on the same page, I don't know. Now, I think it's down to only about half a megabyte, and it's mostly cached.
And I can just keep going on and on about it...
JIRA is something where it can be configured well or poorly. Configured poorly, it's nasty. Configured well, it's enormously nicer than Rally can ever possibly be.
I've been using one called GravityDev at my job and it's nice ( although my team is using it like a PMO tracker despite my best efforts... ) but Pivotal is way simpler and nicer to use.
Though I have only used it in small teams.
The only downside is that occasionally nagios will squawk about no more free memory on the box and we'll see some of the PHP processing using upwards of 5GB RAM.
I've seen trac with "features", now I see JIRA with "features".
JIRA itself is not bad as issue tracker. (Trac also is not bad)
I use JIRA at work, and honestly it's completely fine. It's a goddamn bug tracker. If I can make bugs and close them it's doing its job. Nobody in my organization reads email or tracks their stuff anyway. Sometimes what you have are organizational/management problems, and no amount of wizzy technology is going to fix that.
It would be a hassle to get counted as a student by Github without an edu email, and it would be too much for them to individually approve tens of thousands of people.
Github will approve people for using a student email address even if their school doesn't give them an email account, but it happens on a case by case basis, with requirements such as requesting that you forward a scanned copy of your student ID.
The difference is that Bitbucket does not ask you to be a student for the free account, so there is no process to prove that you are a student. Github has many advantages, but hassle-free, free private repositories is not one of them.
What I was saying is that with the increase in students who are encouraged to use remote version control who may not have a student email account, or even a student ID, has likely contributed to the increase in users on Bitbucket. It is worth noting that some of these courses have more than 100,000 people sign up. Even if only a small fraction finish the courses, a small fraction use version control, and many are smaller, there have already been dozens of these courses conducted in the last year on Coursera, Udacity, and EdX.
I agree with what you're saying, though I hadn't thought about it - and it's also great that these courses are mentioning version control. That really should be a part of a CS curriculum, and it's great they're doing that, my university doesn't which I found quite surprising.
Anyway, sorry for the confusion, I just thought that Github would use the same process as Bitbucket to identify students.
It is pretty interesting how people are using version control in these classes. Here's one that distributes the assignments as a repository on Github[1]
For company/private repos I always use bitbucket, for OSS I use github. The prices are right, it's flexible and you can have the comfort of serviced repos off your local. It is great for remote teams or getting companies to open up to remote access to repos.
I started using bitbucket when it was primarily python focused (github started ruby focused) and liked Mercurial since it was Python based and better supported on Windows back in the day for many windows clients. But they have definitely kept up and after Atlassian bought it they haven't dropped the ball. I also use SourceTree before they bought it and Atlassian knows good tools when they see them, bought that and opened it up (with a windows client in beta).
Congrats to bitbucket from a happy customer for a long time.
I was even happier when they ported SourceTree to Windows. All I need now is the Mercurial support for it, so I can finally use a single client for both Git + Hg in Windows.
One thing I miss in Bitbucket is repo discovery. There's no way, or at least I can't find it, to browse the repositories filtering by language, popularity, etc.
1 million users, I don't know how many repos, but I can tell you I've found lots of cool projects in GitHub thanks to to their search/browsing features. I may be wrong but I think Bitbucket needs that.
(there's a bug report: https://bitbucket.org/site/master/issue/2934/browse-reposito...)
[1] https://bitbucket.org/site/master/issue/2184/support-cnames-...
[2] https://bitbucket.org/site/master/issue/6024/ability-to-igno...
[3] https://bitbucket.org/site/master/issue/2874/ability-to-sear...
[4] https://bitbucket.org/site/master/issue/4307/feature-request...
$ git pull-request
This pushes your local branch up to origin and opens the pull request page at GitHub or Bitbucket (depending on the relevant URL from .git/config).The same Git utils repo includes git open, which opens the remote page for your project:
$ git open
As with git pull-request, it works with both GitHub and Bitbucket (OS X only).Also I use their SourceTree GUI GIT tool, it is really nice too.
Now this is looking like a ad for Atlassian, I should charge them :P
If I need to use a GUI then I find the built-in Gitk and GitGui more than adequate. They're not pretty, of course, but they do the job just fine.
No need to proclaim personal tastes as absolute truths around here.
In any case, Bitbucket has complete git support.
In all fairness, we all do that a lot.
Also I have yet to see a hg tutorial that didn't at some point recommend making a second clone of the repo in order to do something complicated.
The tooling around it? Not so much. http://stevelosh.com/blog/2013/04/git-koans/
But it has nothing, NOTHING as good as git rebase -i
I think the parent was asking a broader question, even including security issues that were brought up and fixed without being exploited.
The URLs were like this https://bitbucket-assetroot.s3.amazonaws.com/<username...
Obviously a bit tedious to guess for humans, but no big deal for computers.
With my issue it seemed like Bitbucket was a one man shop and I suspect that if I had thrown a fit things would have happened quickly. Jesper was attending pycon and I was fine with addressing it after that, but then it was not promptly attended to afterwards. I have no records of how long it took to fix but it was at least several weeks and may have been months. He did dispute "easily guessable". (The Bitbucket service at the time was also overwhelmed with languishing tickets.)
In my own view, private data being accessible no matter how improbable is always an immediate issue. Issues that initially seem improbable get turned into the probable very quickly by the bad guys who are far more imaginative.
But as I said this was late in 2010. I have no idea if the culture of Bitbucket has changed since then or is better.
With Github, a deploy key has read-write access to repos, and each key can only be attached to a single repo.
However, with Bitbucket, a deploy key has read-only access to repos, and each key can be attached to more than one repo.
They've always been top-notch but with git support and Atlassian's rising profile in the git community they're really starting to gain traction. I hope they keep up the good work.
Justen - Bitbucket product manager
I wonder how many users are active on BB and GH though. In my case, I have an account for both but never use BB.
[1] https://github.com/about/press [2] https://github.com/blog/952-1-million-user-party-mon-oct-17-...
The only thing I miss in bitbucket from the github world are gists.