Using a local CVS server to run a Drupal site
Seeing as I have a lot of work these days, and clients are always asking me to tweak stuff, I thought it might be a good idea to have some sort of version control on the stylesheets, template files & modules, that I work on. That way, if something I do breaks something else, I'll be able to rollback more easily to a previous working version.
So I set about trying to figure out how to do this on a Windows XP machine using CVSNT and WinCVS. Information is pretty sparse on the ground, especially for CVSNT v2.5.03 - most info is for older versions.
Anyway, I finally have something up and running, and I'm busy testing it out to see how well it works for me. I know very little about CVS, so its a lot of trial and error - some things I still don't fully comprehend. Anyway, here's a little tutorial on getting everything setup. I might have missed something here and there, so if you have problems, let me know.

Maintaining a site from CVS
Maintaining a site from CVS helps in two main areas:
1.Upgrades: Normally, when it comes time to upgrade Drupal to a new version, there's a long list of upgrade steps that you need to follow. New tarballs need to be downloaded and extracted not only for Drupal core, but for all contributed modules as well. Repeat for each Drupal site you maintain. With CVS, this is just a single command.
2.Access to bug fixes: New releases of Drupal are only made after major bugs (generally security issues) are fixed. These bugs (along with dozens of smaller bugs) are always fixed in CVS first.
Version control - CVS, SVN, and Tortoise
I use Subversion as the version control for my Drupal website and theme (but on Linux). I keep the entire website folder under version control (Drupal core code, contrib modules, themes and images) because I have a heavily modified version of Drupal eCommerce 3.x and just in case I goof something I can roll back the entire site if need be.
Also check into branches and tags if you haven't already. I have branches for different versions of the site I'm working on (1.0, 1.1, devel, etc) and tag the branches when I'm ready to roll to production (1.1-20071224, etc).
ViewVC is a great tool for web-based viewing your repositories. You can view different versions, get side-by-side views and changes, patches, tarballs of code, and more.
If you like (need) to use Windows, check out TortoiseCVS/SVN. They allow you to perform CVS and Subversion commands right from Windows Explorer as context menu items.
I'm a Linux/command line junky myself, but thought I would spread the knowledge in case people like to work with Windows and a GUI.
Here are some links:
http://subversion.tigris.org
http://tortoisesvn.tigris.org
http://www.tortoisecvs.org
http://www.viewvc.org
Great site!
Awesome, thanks
Thanks for the info on your setup - its always good to hear how other people do things. I like the idea of branches and tags for complete sites, pretty neat. And I'm going to look into ViewVC.
The main reason I'm still on Windows is that I use Photoshop for lots of my graphic work. I could switch to a Mac, but I haven't gotten it to run properly on my laptop yet. I'm hoping a newer version will work for me. When that day comes, bye-bye Windows ;) (At least I'm not on Vista).
One question for you: When you modify something on your site, do you manually run a commit each time (once you think the change is good, of course)?
Yep
Yeah, I run a commit manually when I think I have everything the way I want.
I make all changes to my "test" branch. Once I get things the way I want, I then grab a unidiff patch and patch the "production" branch and check that in.