Going from 2.2.x (Froyo) to 2.3.x (Gingerbread) is an involved process as there is always the fear that you will ‘brick’ your phone. This fear usually keeps most people away from upgrading. I’ve found a process, with Google’s help and trial/error, that managed to get process done painlessly and without a dead mobile.
Here is a little back story: I was lucky enough to come across the Galaxy Gio in a bad state while at work. The mobile would turn on, give the Samsung logo then black-screen and would not boot any further. It wouldn’t have made a good paperweight but if I could salvage it, it was mine.
Note: This process is a requirement before upgrading to a Cyanogenmod release.