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
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!
I just registered Uiml.net and Cassowary.net in Launchpad.
Launchpad automatically creates a Bazaar branch from the CVS repository, which allows me to maintain my work in Bazaar, while still importing changes from the Uiml.net CVS tree.
I released an minor update of Cassowary.net today.
Jan Meskens is currently working on the standards compliance of Uiml.net for his Bachelor’s thesis. He also generated some API documentation, which brought up a bug in Cassowary.net. I forgot to add the ClParser class to the Cassowary.Parsing namespace. It had been in the global namespace all along.
I uploaded a new release of the Cassowary.net constraint solver today.
What has changed:
0.2.1 -- 2006-02-16:
* Added debian/ directory, which is used to easily create an Ubuntu
Breezy package. Contributed by Panagiotis Issaris
As you can see, after debianizing Uiml.net, Takis did the same with Cassowary.net. Packages are available in his repository, as usual.
I’ll probably also upload Visual Studio solutions, the Compact .NET binaries and the Debian package itself in the next couple of days.
I can’t think of much to add to the solver. It is feature complete by now, and in my experience also very stable. The only thing that’s missing is more extensive documentation. That will be the target for the next release.
As I mentioned earlier, there was still some news that I needed to blog about.
Takis created Ubuntu Breezy packages for both Cassowary.net and Uiml.net. I wanted to test them on a clean Ubuntu Breezy install first, before making a public announce. We haven’t tried them on a Debian system, but they might work. Feel free to try it out, and let us know!
To use them, just add this line to your /etc/apt/sources.list:
deb http://lumumba.uhasselt.be/~takis/breezy/ ./
The following packages are available for Uiml.net:
Cassowary.net consists of just one package:
Thanks to Takis’ work, the infrastructure is now in place to easily provide updates to our packages.
His repository is still growing. If you’re looking for bleeding edge Ubuntu packages, you might find what you need there (e.g. Vim 7, Gaim 2.0 beta, daily git builds, etc.).