This afternoon, I decided to convert my old code repositories from bzr to git, and move them from Launchpad to GitHub. I have converted Cassowary.net, PydgetRFID, Facade, as well as Uiml.net.
It turns out that converting a bzr repository with a single branch to git is quite easy. Here’s how I did it (after installing the latest versions of both bzr and git):
$ mkdir repo.git $ cd repo.git $ git init $ bzr fast-export --plain ../repo.bzr | git fast-import $ git reset --hard
Of course, repo.bzr
is your old bzr repository here, while repo.git
is your newly created git repository. The fast-export/fast-import commands convert the repository’s history from bzr to git. To populate our directory with the bzr repository’s files, however, we also need to perform a hard reset. If you need to convert multiple bzr branches to git, have a look at this post.
I started experimenting with distributed version control systems (DVCS) while working on my MSc thesis (around 2005). I originally maintained Cassowary.net using darcs (a DVCS written in Haskell), and switched to bzr later. Back in the early days of Uiml.net, we used CVS, which was horrible at moving or renaming files, not to mention the inability to work offline and still commit your work.
I preferred darcs and bzr over git at the time because they were a lot easier to use. These days, git seems to have catched up to bzr in that regard. Back in 2006, I also did a few performance tests and found that bzr was a lot slower than git. Things seem to have improved somewhat, but git is still The King of Speed. Oh, and GitHub is great!
samedayessay.com
February 22, 2012 — 00:24
wonderfull
Roberto Livo
August 24, 2012 — 11:14
It’s really great article.
writingbee.com
August 31, 2012 — 15:19
This post is awesome!
helenwertyl
September 25, 2012 — 17:02
I enjoyed the information lot. Thanks for sharing this information.