OpenSim moves to git

Yesterday we completed the transition of OpenSim from subversion to git as our primary source code system.  This had actually been kicked around as an idea for nearly a year and a half, but our gating factor had always been that git support on windows was lacking.  Recent dramatic improvements with TortoiseGit took away that blocking element.

One of the reasons for this move is to make it easier for more people to participate in the project (I’ve written about this in the past).  The OpenSim core team has now grown past 20, and even coordinating changes among ourselves has become challenging.  Subversion is fine as long as only a couple of people are working in a particular area, past that it doesn’t do you any favors in merging in complex changes.  A number of complex refactorings in the OpenSim tree have been on more or less perpetual hold because of some of these svn challenges.  Hopefully this will help grease the wheels there.

With git the hope is to give us some tools that help us in a number of ways.  The first is to make it easier to collaborate on more complex work.  The second is to make it easier for non core contributors to contribute substantial work.  The ability to have an opensim clone with changes in it staged for upstream inclusion, and have a core member be able to directly pull those changes, should be a big help.

All changes come with challenges.  The most visible is the lack of a monotonically increasing version number.  Git changes are stored differently, so the version identifier is a SHA1 hash.  That’s going to be the first big mental change people will need to get past.  It seems like a deal breaker before you’ve used it, but don’t worry, it will be ok once you have gotten used it to.  It’s just different.

We’ve got an ever evolving set of instructions at the OpenSim wiki.  I also expect we’ll spend a lot of time in the OSGrid Office hours discussing the transition.