Microsoft recently announced they had moved their IronRuby project to GitHub. The announcement, like many projects these days, shows the project moving from its current Subversion repository to a Git repository located on Github.

The initial announcement came from the IronRuby list on RubyForge and explains the reasons for the move:

We’d like to try to make things easier. We’d like to not be in the way of community work on IronRuby; we’d like to give the community a little more ownership over this project. Ideally, we would all work out of the same repository, but this can’t happen right now. However, we have some ideas to make things easier.

The advantages for Microsoft’s move to Github are obvious and should help the team better interact with the community right away. Microsoft also has other open source projects which can be a win for the company and the community:

First, we’re moving to Github. I’ll be creating the Ironruby project on Github at http://github.com/ironruby/ironruby. This will be the same user on Github that we use for IronRuby-contribs, and our versions of RubySpec. The biggest upside of this is that anyone can fork IronRuby and work on it, and submit a pull request to get it integrated back into the main tree. However, we don’t want to be in the way of accepting patches.

This move also provides people knowledgeable with Git and IronRuby, to take on a role in the project in order to facilitate developers getting their updates into the project:

Next, we’re going to institute a Linux-like system of Lieutenants. We’re looking for people who are passionate and knowledgeable about the IronRuby project to take on this role. The goal of this system is to streamline the process, and make it easier for our external contributors to get code into IronRuby. We’d like to have Lieutenants who can take the patches and pull requests, code review them, and then commit them to their trees. Then we can pull these forks into our repository when we do pushes, and integrate it into one repo. Our hope is that we can be viewed as just one node in the tree, or ring. We shouldn’t have to be the central repository; we’re just one of the repositories.

Since the IronRuby team uses Team Foundation Server, the Microsoft standard for source control management, the move to Git is intended to make transformations from TFS easier:

Finally, we are going to be getting rid of the history in SVN, which for the most part is a bunch of commits saying “sync to the head of TFS.” We are doing this to get a fresh start. The layout of the new Git repository is going to exactly match our internal layout. That makes maintaining the transforms from TFS to GIT much easier. It also will make things easier when talking about the locations of files.

The announcement was later confirmed on the Github blog:

Git has been gaining in popularity since it was released as an alternative to Subversion and other source control systems. Git has command-line clients available for Linux, Mac OSX and Windows. Windows users have msysgit to use Git, which uses Cygwin and creates a Bash shell prompt for interacting with your Git repositories. Even though there is not currently a graphical interface to Git that Visual Studio developers are used to with other SCM systems like TFS and Subversion, the lack thereof is not a hindrance once the simple Git commands are learned.

IronRuby joins a growing list of high-profile projects relying on Github for their SCM, including Rubinius, Ruby on Rails, Merb and others. This is certainly great news for developers interested in IronRuby, gaining easier access to source and greater ease of forking for their own use as well as contributing back to the project.

Learn more about Github and the IronRuby repository on Github.