The Rails trunk is on SVN however Koz has a separate "git repository":http://git.koziarski.com/?p=.git;a=summary and Jeremy Kemper uses SVK. Also there has been talk of Mephisto using git exclusively for future development.
What kind of version control system are you using at the moment? Which is your favourite and why? How do you use it to aid your development process / contribute to the core?
Git. and I like to see rails development move to git. Easy( and Quick ) branching is important feature for project like Rails.
Git x2, The distributed nature of Git allows me to keep my full workflow whether I'm on a train, at home, or in a park. I heavily rely on branching for making (larger) changes to my code (any code, Ruby, Objc-C, etc.). Another plus is git's ability to bridge to other SCM systems like SVN and CVS.
RSpec is moving from SVN (though they'll keep an SVN read-only repository), but they haven't decided on Git or Mercurial yet. I suspect Git's tricky Windows support is one reason. I've asked David Chelimsky to chime in with more details on the RSpec list.
Git FTW! Seriously, I have never met a source control system I liked, from VSS to CVS, to SVN, then I found Git and fell in love!
Definitely Git! Especially now you can get a quick start with gitorious.org or github.com
Git is gaining a lot of popularity fast, however, I should say that if you don't know SVN you'll be in a bad way. As you begin to work with RoR and work in teams, not every team leader is going to be offering you the possibility of using git, and while there are ways to still use git in light of that, you really should understand how svn works as well. However, git it still a lot easier to work, and branching is a dream compared to svn.
I used to work with SVN. We are a team of two developer but even in that case Git is a lot better compared to subversion. We have about 20 projects on SVN and we're slowly moving them to git, but we had to deal with a number of issues
- Plugin support
First after using externals for a long time, I think externals for plugins are a bad idea. Not in all cases, but generally I avoid them. I mention this because there is no alternative for externals in Git. You can use submodules, but they require a lot of developer discipline to not mess things up. Wherever externals are absolutely necessary, we use rake tasks and either submodules or break up the repository to pieces and pull, push accordingly.
- Windows support
We don't use windows. :) This can be a problem for many people. We have a project or two that work designers with windows machines. For that cases we keep the SVN repo and use git-svn for ourselfs.
- Empty repositories.
Rails needs repositories to exist (like tmp/cache) even though you don't track any files in it. It's easy to add .gitignore files in them and keep track of them.
The issue in my opinion is not switching from SVN to Git, but switching from centralized to distributed and to an SCM that handles branches the way it should. In that manner Mercurial, Bazaar etc would do just fine.
I'm using Subversion. I'd like to try Git, but I have yet to see a solution for Rails plugins that doesn't involve a lot of kludges to replicate what SVN does easily with externals. When I see such a solution - - and when Mingle integrates with Git - - I will happily try it.