Migrating packaging from Bazaar to Git
A while ago I migrated most of my packages from Bazaar to Git. The rest of the world has decided to use Git for version control, and I don't have enough reason to stubbornly stick with Bazaar and make it harder for myself to collaborate with others.
So I'm moving away from a workflow I know and have polished over the last few years - including the various bzr plugins and other tools involved. Trying to do the same thing using git is frustrating and time-consuming - and I'm sure that'll improve with time. In particular, I haven't found a good way to merge in a new upstream release (from a tarball) while referencing the relevant upstream commits, like bzr merge-upstream can. Is there a good way to do this? What helper tools can you recommend for maintaining a Debian package in git?
Having been upstream for bzr-git earlier, I used its git-remote-bzr implementation to do the conversions of the commits and tags:
% git clone bzr::/path/to/bzr/foo.bzr /path/to/git/foo.git
One of my last changes to bzr-git was to add a bzr git-push-pristine-tar-deltas subcommand, which will export all bzr-builddeb-style pristine-tar metadata to a pristine-tar branch in a Git repository that can be used by pristine-tar directly or through something like git-buildpackage.
Once you have created a git clone of your bzr branch, it should be a matter of running bzr git-push-pristine-tar-deltas with the target git repository and the Debian package name:
% cd /path/to/bzr/foo.bzr % bzr git-push-pristine-tar-deltas /path/to/git/foo.git foo % cd /path/to/git/foo.git foo % git branch * master pristine-tar