[Biopython-dev] SVN migration and Launchpad mirroring

Eric Talevich eric.talevich at gmail.com
Mon Feb 9 20:39:04 UTC 2009


Mark Shuttleworth blogged about why Ubuntu chose bzr awhile back:

* "Choose lossless VCS tools if you have that luxury" --
http://www.markshuttleworth.com/archives/125

* "Merging is the key to software developer collaboration" --
http://www.markshuttleworth.com/archives/126

The use case for DVCS is what I assume usually happens when a new parser or
other module is added to Biopython -- an outside developer has some sizeable
chunk of useful code and needs to integrate it with the trunk. "Code bombs"
are something the Linux kernel deals with constantly; I have no idea how
they'd deal with it in a centralized system. (Nobody does; they never did
use cvs.)

My lab uses bzr now. I have it set up to work like a centralized repository
in general; I'm the only one who uses the distributed features at the
moment, switching between a laptop and a workstation. The merging and
renaming support is much better than svn's, and it was easier to set up. It
feels kind of crazy to me now to add a significant new change to a project's
trunk in one monolithic commit, and I feel the pain of any maintaner who has
to apply a patch set to the trunk after the developer's branch and the trunk
have diverged.


Regarding other concerns:

- For update operations more advanced than just pulling the latest revision
from the trunk, in bzr et al., it's possible to cherry-pick specific
revisions from other developers.

- Similarly, it's possible to only merge completed bug fixes and
enhancements to the trunk, skipping any new/unstable work a developer has
embarked on in their branch. That's why Linux is now permanently on version
2.6.X -- basically every commit can be made stable, so there's no need for a
new unstable series in the trunk.

- Testers should enjoy the ability to pull specific changes while ignoring
unrelated code, even in the same file -- the distributed systems all have
this capability (shelve).

- PPAs are less useful for Python packages; they just let you manage
everything from apt instead of easy_install. I use a PPA to keep my lab's
machines on the same version of bzr despite having different versions of
Ubuntu. I don't use easy_install for anything right now because it scares
me.


Best,
Eric



More information about the Biopython-dev mailing list