Finally after some issues and lots of interruptions we made the move to GitHub. We will keep the BitBucket repos (but as read-only) since there’s lots of inbound links for code and issues.
If you are interested in doing the same move here’s what we did.
Create the reposiory on GitHub, then pull in Mercurial project from BitBucket into a local git repos using git-remote-hg:
git clone hg::https://bitbucket.org/bitcraze/crazyflie-firmware
The new github repos can then be added to the local git. Tags and branches can then be pushed to github. As Mercurial and Git have very different way to handle branches you will have to chose which branch to push and push them manually (we did not find any way to push all at once and we did not want to push all the branches anyway…):
cd crazyflie-firmware git remote add github email@example.com:bitcraze/crazyflie-firmware.git git push github master #Pushing tags git push --tags github # Tracking and pushing all interesting branches git branch --track 2014.01 origin/branches/2014.01 git push github 2014.01 git branch --track gps_ublox_dev origin/branches/gps_ublox_dev git push github gps_ublox_dev
Copying the issues from BitBucket to GitHub can be done using this script. It takes the source user/repo and destination user/repo as arguments. Keep in mind that GitHub doesn’t have the same metadata as BitBucket does. So there’s a JSON file where you set up the mapping between BitBucket kind/status/priority/component and GitHub labels. In this you can set up zero to multiple labels. If a mapping for components is missing then a label with the same name is used. Milestones on BitBucket is mapped 1:1 to GitHub. The needed labels and milestones will be created as they are used while copying the issues.
If you are copying issues to an organization repository you will have to use a GitHub API token for identification, since you cannot log in using the organization username. Here’s an example for what we did for the Crazyflie python clients:
#Migrating tickets from Bitbucket to Github python migrate.py -g bitcraze -d crazyflie-clients-python -u bitcraze -s crazyflie-pc-client -k your_api_token_here
Two tips: Create a new user that does the migration (like bitcraze-issue-importer) and make sure that you haven’t created any issues in the target repositories before the migration. If you don’t have any issues before then the number will match and all the references will work out of the box (from commit messages and other issues).
5 comments on “Officially moved to GitHub”
Where do you go to get support with the CrazyRadio and CrazyFlie? I built mine, the propellers all spin when I turn it on. But, I can’t connect to it from my PC with a USB or with CrazyRadio. My CrazyRadio USB dongle driver says it is working properly. I am running CrazyFlie PC Client 2014.01.0 on Windows 7 32 bit version.
Will the VM be updated? I guess 0.4 is bitbucket.
Yes, we are working on updating the VM. The last thing we are missing for a new release of the VM is the a KiCad build that supports the new versions of our projects. Hopefully we will get around to finishing it this week.
I just got the VM 0.5 running (on Windows 7, it’s much faster than running Ubuntu 12 or 14.04). Thanks!
I see that you moved to git a few months ago, but the VM docs here http://wiki.bitcraze.se/projects:virtualmachine:index talk about ‘hg’…
I’m new at this but just running the version 0.5 VM’s ‘update all’ desktop shortcut connects to the stuff on github right?
Glad to hear that you like the VM. Yes, the 0.5 VM version uses GitHub and not BitBucket when updating the projects.