Edit this page on GitHub

GitMigration

We have recently migrated to git distributed version control (instead of CVS), as summarised here.

The process of development of Biopython with git is outlined here.

This page contains the information on the technicalities of the transition itself and how the core developers should deal with the changes during the transitional period.

Current setup

GitHub currently hosts the Biopython Git repository at http://github.com/biopython/biopython/

This could become the official repository. Currently it is synchronized with the main CVS trunk every hour, so it should be up to date most of the time.

Updates from CVS to GitHub branch

The updates are done with the cvs2svn tool in the cvs2git mode.

This works by extracting commits from the cvs repo and generating input for git fast-import. It seems to work nicely and is really fast.

The updates are performed hourly, using the following configuration 1. The scripts obtains the cvs repository via rsync and performs the conversion locally. This has to be done this way at least until we get git installed on dev.open-bio.org.

After the conversion is done, the updated git branch is pushed to github, so that others can use it. Afterwards, the copy of the git repo is rsynced back to OBF servers for backup purposes.

Accepting code contributions

During the migration, the CVS repo is assumed to be still of higher priority. This means that all code contributions need to go through CVS and then get updated to the GitHub branch. This effectively means, we cannot push to the main Biopython branch directly, but instead work on different branches and generate diffs to be applied to CVS.

In case of small bug fixes, the core developers can continue to work directly in CVS. The changes will get pushed to GitHub eventually.

Since we also want to accept contributions through github, it means that core developer integrating changes will need to do some extra work:

Next steps

Once we reach a consensus that git/github serves us well. We will make the final switch. This would include: