Transitioning to Git

Published
2011-08-30 02:38
Written by
After a big conversation at the coding sprint, we seem to be in consensus about transitioning CiviCRM's revision control system from using subversion to using git. If you are a user or integrator that installs CiviCRM by downloading the zip or tar ball from the CiviCRM site, this transition won't affect you in any way. If you are a developer, or an integrator that currently uses the CiviCRM subversion repository to manage your sites or as part of your deployment system, please read on. The main difference between subversion and git is that subversion is a centralized revision control system whereas git uses a distributed model. By changing to git, CiviCRM will be able to more easily organize a large group of developers to contribute code to the project, while still maintaining a small team of core developers who have write access to the officially distributed CiviCRM code base. No dates have been set for the transition, but now is a good time to get familiar with git and start to think about what this transition might mean for your development and integration process. The git documentation page is an excellent place to start if you are looking for documentation or tutorials. It also includes a page specifically for helping people transition from subversion. Some ideas that were suggested for a smooth transition include:
  • Provide a 2 - 4 week announcement before making the official transition
  • Provide a sandbox version of the CiviCRM code in a public git repository and grant the current core team write access. This way core developers can practice committing and merging on a repo that will be thrown away.
  • Create and maintain a read-only copy of a git repository that remains in sync with the subversion repository. This way people can start tracking the git repository while the subversion repository is still available. It also will ease the task of integrating with Jira. When subversion is turned off, this will be come the official git repository of the project.
We're still considering git hosting options, but Gitorious seems to be the front runner at the moment (we are not considering github.com because it runs on proprietary software).
Filed under

Comments

Hi,

 

I've seen several git repository, but so far were more or less out of sync with svn. Have you seen/put in place a better resource?

So any chance we are able to move to GitHub?  

 

I' imagining there are issues ith JIRA/Fisheye maybe even SourceForge etc... but just wondering

What are the proprietary bits of Github mentioned above? I thought it was all open source.

I started recruiting in IRC for a folks interested to work on this several weeks back - I'm happy to help and and let me know who's leading the team so I can pass on the names!