Gitty-up! CiviCRM moves to Github

Published
2013-03-01 18:22
Written by

As of March 1st, the official source-code repository of CiviCRM has switched from Subversion to Github. Git and Github provide a number of advantages:

  • Popular among FOSS projects and web developers.
  • Free as in beer and (mostly) free as in speech.
  • Supports off-line development.
  • Supports lightweight branching, merging, and code-review.
  • Supports open teams – anyone can jump-in, make changes, and share changes.

For instructions on converting an existing installation (based on SVN or tarball) to a git checkout, see:

http://wiki.civicrm.org/confluence/display/CRMDOC43/GitHub+for+CiviCRM

As you get to developing and submitting patches, please try out Github's "pull-request" process. This process allows you all the benefits of git and github (publishing, offline development, lightweight branching, online code browser, etc) without requiring prior approval from anyone. In the future, we'll provide extra features for pull-requests (such as automatic validation against the test-suite).

Release Notes

  • The repository structure has changed. Previously, there were two SVN repositories ("civicrm" and "tools"). The new structure is described on the wiki.
  • bin/setup.conf has changed. The SVNROOT variable is now called CIVISOURCEDIR.
  • The path to SeleniumRC has changed from "tools/packages/SeleniumRC" to "packages/SeleniumRC".
  • If you were involved with testing the experimental "wariocrm" repositories, be sure to delete anything based on them. Mixing data between "civicrm" and "wariocrm" could produce significant confusion.
  • If you've previously maintained your own forked repository based on CiviCRM, then you'll need to make changes. Git provides great tools for maintaining forks, but we don't have any great documents describing that. Feel free to contact us or to share your experiences in switching over.
Filed under

Comments

Just a note I'll be moving the (unfortunately named) php repo (Physician Health Program) currently at svn.civicrm.org/php/, but haven't decided where yet - most likely it will eventually be turned into extensions. It never really belonged here, just that when CiviCase was new it somehow ended up in the civicrm repo.

We're planning to keep the SVN services online indefinitely (for maintaining 4.2 and for historical records). I didn't notice that repo (b/c it didn't appear in a certain config file), and I may have accidentally changed permissions on it. That should be fixed now. You can email me if there are issues with it.

What is the workflow going to look like for 4.2 maintenance?  Since that branch wasn't carried over, I guess we should export patches from one system and import into the other?