Wednesday, July 15, 2009

Bioclipse moving to GitHub: CIA hooks enabled

Following the CDK and JChemPaint Primary, Bioclipe moved to Git just after the 2.0.0 release.

We decided to split up the repositories, and have one benevolent dictator, or dr. Who, for each repository who will maintain the plugins defined in the repository and coordinate development: Several plugins are still in the SVN world, but a good deal is now Git-ready. BTW, this move also adds several new accounts to watch on GitHub (see Rich' 17 GitHub accounts to watch on Cheminformatics).

GitHub turns out to be our big friend here, not SourceForge, which only supports one Git repository. GitHub recently must have added hooks recently, but I am really happy to see those. The above Bioclipse repositories have hooks turned on for CIA (so that commit messages end up on our #bioclipse IRC channel) and email (as indicated by the green color):

The splitting up, was rather interesting indeed. We wanted to keep the complete commit history, but still reduce the git repositories considerably. This means removing history of the plugins which should not end up in the repository. Git allows this! Git rules! This time, git filter-branch is our friend and there are basically two options: constructive and destructive. The first copied bit by bit plugins from the old to the new repository. The second one does the opposite, and removed bit by bit stuff you do not want. Depending on the ratio of plugins you want to keep and those you want to remove, either solution is more appropriate. I have summarized the git commands I used in detail on this Bioclipse wiki page.