From: Stephen Bannasch Date: 2009-01-03T09:16:42+09:00 Subject: [ruby-core:21081] Re: Happy new year and... moving Ruby development to Git? At 6:06 AM +0900 1/3/09, Charles Oliver Nutter wrote: >mathew wrote: >>My opinion: >> >>Git is currently the flavor of the month. It's getting adopted for >>reasons which amount to fashion rather than legitimate technical >>merit. It has a horrible user interface, and a fundamentally broken >>model. > >I'm not as negative about git, since for my limited scm-fu hg and >git are just svn with a local repo, but I definitely agree with the >"flavor" statement. Between minor versions git has changed >command-line options, added and removed commands, and introduced >bugs. Don't get me wrong, I like it, but I don't like it enough to >go through the pain of moving an existing large project to it >without a very good reason. Add to that what Matz said about wider >tool support and it's really not compelling. > >JRuby will probably be making a move to Mercurial soon, and our >reason for doing so is that we're moving to the JRuby-on-Rails-based >kenai.com project-hosting site Sun built over the past couple years. >If we're moving there, we'll need to migrate SCM anyway, so we might >as well migrate to DSCM. Hg is the current likely candidate simply >because it's well supported by kenai and by the tools we use >(namely, NetBeans). > >An official up-to-the-hour git mirror would probably be the nicest >way to support git for ruby-core right now, and I think github even >supports git-svn clones in a smart way now. I run off a copy of >Vladimir's git-svn mirror myself, and I use git-svn for JRuby work, >so that would be my recommendation, at least until git support is >rock solid and relatively consistent across all the usual platforms >and tools. I have enjoyed learning about and using git. I find it very fast. I can't imagine not working with a complete local repository anymore. I have a git clone of the ruby and jruby repositories -- the ability for me to easily use git bisect to find the changeset that caused a regression makes it much easier to either create a good bug report or find and fix the problem myself. The changeset visualization I used to do with trac or fisheye is so much faster locally in various git visualization tools (I use GitX on the Mac). I almost always use git-svn to clone code in subversion repositories instead of svn. Being able to trivially follow changesets locally makes it much easier to understand other people's code. I use JRuby and I've been playing with jgit, the java implementation of git, in making some applications in which distributed content is part of the functionality. The fact that I can use the DSCM I use most often for source code for application functionality is a big plus. There is a good Ruby gem that works with the C version of git called grit. Scott Chacon's free screencasts of git are great. Git integration with textmate is good and integration with eclipse and netbeans is getting better. The pattern where I make a branch, end up making a bunch of commits that fix a problem or add a feature -- and then when the change is working and tested combine the commits together to make it available as a patch or push it to a public repo for others to try out works well. I think the fact that it appears to be much easier to use Ruby to interact with git than with other DSCMs like hg or bazzar a big plus and likely to lead to more interesting new applications.