[ensembl-dev] Git

Youens-Clark, Ken kclark at cshl.edu
Mon Sep 10 17:24:37 BST 2012


While meeting on campus, I brought up the multiple advantages to an outside developer such as myself to having the Ensembl code repository move to Git.  I'll list a few points to start the discussion:

- When I find bugs, I can only submit a diff to this mailing list and hope that someone chooses to manually apply and commit it.  If I were able to clone your code, I could have all the power of a proper code management system with local atomic commits, etc., by making my own branch and pushing that branch back to you when I was done.  Then you could easily merge my changes as you saw fit.

- According to the Wiki page (http://en.wikipedia.org/wiki/Concurrent_Versions_System), 
CVS was started in 1986.  The index page on what appears to be a somewhat official information page at "http://www.nongnu.org/cvs/" was last updated in 2006.  The last message in the archive of the "cvs-announce" list telling of the release of version 1.11.23 is from 2008, and the GNU FTP site at "http://ftp.gnu.org/non-gnu/cvs/source/stable/" shows this is the last release.  Basically, CVS development appears to have been abandoned about 4 years ago.  

- By contrast, Git was developed by Linus Torvalds, the creator of Linux, for the management of the Linux kernel code.  It is enormously powerful (and, yes, more complex than CVS, but not necessarily in the main) and is actively developed by a vibrant community of dedicated hackers.  There are many sources of help (books, mailing lists, IRC, YouTube videos, http://git-scm.com/community, etc.).  

- All the points at "http://en.wikipedia.org/wiki/Concurrent_Versions_System#Criticism" still hold true.  No point in repeating them here.  Git's basic ideas are described here:  "http://git-scm.com/about".

- Git's social ideas of coding are worth exploring and adopting.  The ease with which a developer can branch is a benefit to large organizations like Ensembl so that people are not committing to HEAD.  Moving to Git could spur an improvement in other Ensembl coding practices.  It has in Gramene.  Just sayin'.  

Code is not like wine;  it does not generally improve with age.  CVS is basically dead and is holding back the collaborative potential of the project(s).  There are tools to help you move (http://cvs2svn.tigris.org/cvs2git.html) and loads of documentation from others who have done it (http://www.oak.homeunix.org/~marcel/blog/2009/06/03/tracking-cvs-with-git-using-cvs2git).  I really think it's time to consider a change.

Just my 2 cents (which, according to the exchange rate, is worth very little).

--
Ken Youens-Clark
Ware Lab/CSHL/USDA-ARS
kclark at cshl.edu





More information about the Dev mailing list