#![desc = "Random thoughts of a software engineer"]

Rails moves to GIT - no more SVN?

Yesterday, in my post about upcoming features in Rails 2.1, I wrote, that Git gets more and more attention in the Ruby on Rails scene recently -- and this morning, I stumbled across a post from David, where he annonced, that Ruby on Rails itself is moving from Svn to Git.

That was a rather welcome news to me, since I personally use Git for quite some time now and have switched all my repositories to Git a while ago. However, some people seem to be concerned about Svn being dropped by Rails. But it's not as bad as you may think, since this doesn't mean that you have to move to Git as well...

I can only recommend everybody to have a look at Git, if you don't know it yet (there's plenty of documentation on the Git homepage, including special howtos for Subversion users). I'm not going to explain how to use Git to retrieve the Rails source here. The Git documentation describes it in detail and I'm sure the Rails wiki will be updated soon to tell how to get Rails with Git.

Just a clarification: because Rails is being moved to a Git repository, it doesn't mean that you neccessarily have to give up your Svn repositories. You can keep on managing your sources with whatever versioning tool you like. This move to Git only affects you, if you used to retrieve the latest Edge Rails regulary (which was usually done by setting an svn:external to the Rails Svn repository). But even if you do so, there are ways you can still fetch the latest bleeding edge Rails source without getting known to Git.

E.g. François is currently working on the next major version of Piston (there's already a preview release available). Piston 2.0 will be able to merge any supported repository into your repository (with Svn and Git currently being supported), i.e. you can pull Edge Rails into your project without knowing how to use Git.

And if you, for whatever reason, want to or have to completely avoid using Git, David already mentioned, that gems with beta-versions will probably be available on a regular basis. And additionally allows one to download any branch of a repository as a tarball.

Despite all glorification of Git above, I must admit, that there's currently a drawback -- which however only matters, if you plan to also move to Git. Git is unfortunately not as well spread and supported by other applications like Subversion currently is. E.g. I personally use NetBeans for quite some time now, and it doesn't have Git integration (though it does support Subversion and Mercurial). Since I often tend to use the commandline anyway, it doesn't really matter to me, however I still hope that, that NetBeans will come up with Git integration soon.