Today was flag day, the day the official Mailman source code was moved from being revision controlled by Subversion on SourceForge, to being revision controlled by Bazaar on Launchpad.

I've written before about what I think are the compelling reasons for the switch so I won't go into them here. But I do want to talk a bit about the process of the switch, which went very smoothly.

The first key thing was that well in advance of flag day, I requested that the Launchpad administrators begin to mirror the upstream Subversion branches that I ultimately intended to move. This wasn't all of the old branches, which will remain in the read-only Subversion repository, but instead just the trunk, 2.1, and admin branches. Then I branched these three locally and occasionally bzr pull'd updates when the mirror saw commits to the Subversion trees.

This meant that by the time I was ready to switch, I had local up-to-date bzr branches sitting on my filesystem.

I also prepared by creating a few teams and projects to hold all the new data. I created the Mailman Coders team which will be how we manage write permission to the branches, and I created the Mailman Checkins team which will be used solely to feed branch diffs to the already existing Mailman Checkins mailing list.

At conversion time then, all I had to do was to push my local bzr branches to the ~mailman-coders team's hosted branch locations, and I was essentially done. When I pushed the branches with the new url, I used --remember so that from then on the branches would use the correct url; I did the same with bzr pull --remember and presto! the conversion was complete.

I should mention that cleaning up the old vcs-import branches (i.e. the Subversion mirror branches) was a bit of a pain, because I don't own these branches, the semi-fake vcs-imports user does. But hey, what a good way to owe my friend, fellow Pythonista and employee Michael Hudson some beers!

MailmanWiki: DEV/Bye bye Subversion, Hello Bazaar (last edited 2015-03-04 05:51:21 by msapiro)