rubygems 1.2.0 causing problems for anyone else? (SOLVED!)


After updating to rubygems 1.2.0 I've noticed that my mongrels started returning the following colorful error on every XHR load, i.e. all AJAX requests fail but regular page loads are fine:

Mon Jun 23 23:39:15 -0400 2008: HTTP parse error, malformed request ( #<Mongrel::HttpParserError: Invalid HTTP format, parsing fails.>

Given that rubygems was the last thing I updated, I figured I'd try reverting to the previous 1.1.1 release using the following steps:

  • uninstall all versions of the rubygems-update gem that were installed:
    sudo gem uninstall rubygems-update
  • install the v1.1.1 rubygems-update:
    sudo gem install --version '1.1.1' rubygems-update
  • manually run the updater to ensure that the stable v1.1.1 release was active:
    sudo update_rubygems

A few minutes of churning away and... still no biscuit! ARGH!

More updates when I get this working.

UPDATE: This is a weird one. I was poking around working on an official bug report to the error when I noticed that my ~/.gemrc had a duplicate source entry for github. I removed the duplicate, restarted the mongrels and... it worked! Go figure.

How to migrate from cvs to git


Something that I've seen with several older projects lately is a desire to upgrade from their aging cvs repositories to something better. Today, if you've read my blog lately at all, you might be able to guess that git has become the r.c.s. du jour, and it's really, really awesome too. So you should use it.

So how to move from cvs to git? Well, amusingly for that I've got a suggestion.

Instead of going straight to git, go to subversion as a stopping off point at the server level. One key reason I recommend this is that many developers (or managers) aren't yet ready to deal with git's command-line tools while there are lots of really great graphical svn tools on Windows, like TortoiseSVN. Then, when there's TortoiseGIT available you could migrate up to git with very little work.

To do this you'll use the excellent cvs2svn, and take a look at O'Reilly's excellent cvs2svn tutorial if you need detailed help.

Then, once you get svn going as your central repository you can use git-svn to locally interact with it and to have all of the usual git gravy - create local branches, use gitosis and gitjour to directly share your code with others, all while keeping the less technically savvy users happy with their point-and-click GUI tools.

So go git yourself into the 21st century!


Subscribe to General