#pragma page-filename DEV/versions/786440 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 [[http://bazaar-vcs.org|Bazaar]] on [[http://launchpad.net|Launchpad]]. I've written before about what I think are the [[http://mail.python.org/pipermail/mailman-developers/2007-May/019609.html|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 [[http://launchpad.net/~mailman-coders|Mailman Coders]] team which will be how we manage write permission to the branches, and I created the [[http://launchpad.net/~mailman-checkins|Mailman Checkins]] team which will be used solely to feed branch diffs to the already existing [[http://mail.python.org/mailman/listinfo/mailman-checkins|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!