I've been running a few sites on Drupal multisite for a while now, but I'm trying to be more efficient in the way I develop new sites, and backup/amend/upgrade existing ones.

Having read around, I understand that my best bet is using CVS. However, I'm struggling to understand how to set it all up.

My hosting is on a VPS (InMotionHosting), and I don't have root access.

I want to be able to work on a local version of whichever site I want, then push the code to a staging server for clients to preview, and then push the code to the live VPS once it's signed off.

What's the best way for me to do this?