I've been using git for a while, like it a lot, and finally decided it's time to move all my Debian packaging work over from CVS. After a frustrating few hours trying, I gave up on trying to use git-cvsimport. It generates mangled repositories even for simple packages like sudo. The git-import-dsc tool in the git-buildpackage package works fine as far it goes, but I'd really like to preserve my history. So, after some consultation on IRC, I took a look at parsecvs. It didn't quite work out of the box, either, but looks promising, and the author showed an immediate interest in the problems I'm having and offered to help. So, perhaps I'll be able to use it before long...

In the meantime, a while back I offered to help Gudjon I. Gudjonsson restructure the sdcc packages so that a DFSG compliant version can return to main with a full version under a different package name going in non-free. This is all necessary because some of the assemblers provided in the package have a non-commercial use clause in the license, and there are also license issues with the HTML documentation. I care about this because sdcc is a build dependency for gnuradio, which I maintain for Debian (it uses the 8051 toolchain to build downloadable code for the USRP, etc). While waiting for parsecvs to get some love and attention, I sat down this evening to restructure sdcc and move it to git.

I'm pretty happy with my progress so far, though there's a bit left to do before uploads happen. Gudjon and I decided to use the collab-maint facilities on alioth.debian.org for collaboration, which took me a little head-scratching to figure out, but looks like a perfect fit for our needs. I updated the wiki page about Git on Alioth with a few of my learnings as I went through the process.

Using git branching to handle non-DFSG-compliant upstream sources is pretty obvious, the notes in the git-buildpackage documentation helped. Using pristine-tar to capture the deltas required to regenerate orig.tar.gz files from the git repo is amazingly cool. It's hard to believe how much friendlier the world seems when you don't have to drag a bunch of tarballs around with you to do useful work! And git-buildpackage has suitable options to make using it pretty automatic. Great stuff!

It's likely to be a few days before I can get back to this, finish up, and upload the results of this restructuring work. In the meantime, I'm writing this entry largely to offer my compliments to everyone involved in making git-buildpackage, alioth, and collab-maint work so well. Special thanks to Joey Hess, whose pristine-tar package is another in a long line of absolutely brilliant tools that contribute to making my life easier! I'm going to end up using it a lot.