Moving to Subversion from CVS is a bit like taking a taxi through Amsterdam when it's raining. You plough through puddles at 80kph and generally have a good time. However if other people are involved and you're actually trying to get some work done then things can get quite messy.
Luckily I'm only moving my personal projects over. On more than one occasion I've questioned my reasons for making the transition, especially this early in Subversion's lifetime. On the other hand it seemed like fun and CVS's few flaws can be quite annoying. Renaming a file without losing it's history doesn't seem that important until you need it. After reading Martin Fowler's book, Refactoring, and applying the lessons I've learned from it I've come to appreciate the value of developing code in a more disciplined way. This involves automated unit testing and constant refactoring (to eliminate duplication and reduce the build up of cruft) amongst many other practices which you can find in the Extreme Programming books. But if one is constantly refactoring then one needs a source control system that can track an artefact even when it's name changes or it moves from one directory to another.
Which is why I started learning Subversion in the first place.
I've bypassed the problem of disconnected operation by simply getting in the habit of moving my svn repository from laptop to desktop and back again whenever I'm on the road. It's not particularly elegant but it works. The main CVS feature I miss is the ability to browse the repository. Or at least be able to get a listing of it's contents.
And in other news mySql turns out to be closer to the SQL standard than MS Access. Porting a small Java web application from one to the other was relatively painless. In the end I didn't need the classes implementing the Factory pattern which were meant to hide differences between the two. The only real problem was Access's weird syntax for the LIKE operator.