From GitHub to BitBucket in 60 seconds

Three weeks ago I finally decided to pay for GitHub so that I could keep some of my new projects private without giving up the beauty that is their cloud based source control. Last night I decided to try BitBucket's new FREE offering and see whether I could save myself $7/month. Literally fifteen minutes later I was deleting my private repo's on GitHub so that I could downgrade my account back to free.

I am of two minds on this, because on the one hand I want to see GitHub succeed. They are the innovators as far as I'm concerned and I've been extremely happy using their service. BitBucket feels like a cheap knock-off in almost every way, which is great because it's familiar and easy, but I almost don't want to use it on principle.  On the other hand, I would rather clearly rather pay nothing then $84 a year for my personal projects which I want private.  Should any of these projects take off I will need to pay when the number of users goes past 5, which makes sense. Until then these projects don't have any monetary value anyway and so are not worth spending money on just for privacy.

Anyway enough opinion.... here was the process :

  1. Create a user on bitbucket.org. Love that they have OAuth support - but you do still need to pick a username and password for use from the git client. 
    1. I was able to select the same username I had on GitHub which simplified moving things a bit
  2. Under the repository menu select "Import Repository", then select github, provide your credentials and click go
  3. Magic! you have your repo moved along with all of your commits and history. Very simple.  
  4. Go here and add your ssl key which you should already have from using GitHub (~/.ssl/id_rsa.pub)  
  5. Now for each repository you moved, on each machine you use, edit the following file:

    /repo_location/.git/config

    If you've kept the same username then the only change to make is the domain: (obviously change the username if you need to ;-) )

    OLD:  url = git@github.com:your_user_name/your_project.git
    NEW :  url = git@bitbucket.org:your_user_name/your_project.git
  6. Done. Commit, push and pull as before. Your project is happily oblivious. 

So far the experience has been good. No mac client for bitbucket but I was having problems with the mac GUI client anyway and always ended up on the command line. The UI is familiar and because I hadn't really gotten into the social features and other aspects of github I have noticed no real difference in service. 

I wonder how long before GitHub changes their model slightly to compete with this....