I'm going to try to directly answer your questions...
Your brilliant, informative advocacy for CVS as opposed to other like systems has converted me, though, so I'll be putting all my servers' /etc and other configs under CVS right away. Might as well do my web sites, personal writings, and stock book too, while I'm at it.
So, beautiful sarcasm aside here, there is a very important set of files that belong in CVS. And the set is defined as this:
Any file which I want to remember how and why I changed it without having to commit that information to memory.
And that is the big win with CVS. I don't have to wonder why I made changes to my .vimrc and .procmailrc because I'll have recorded why in my CVS log message.
Whether that change added the whole file, changed the whole file, or changed one character, with one simple 'cvs commit' on the command line (or 'c' from PCL-CVS in [X]?Emacs) (or a mouse click in
tkcvs) all that information is safely stored in a repository.
Granted, I'm a little biased, because I'm implementing CVS for a moderate sized corporation right now, but with the hooks provided, you can do some neat stuff. Think instant email notification on commits. Think to all those files.
It's really nice to be able to look back and see when I changed some line in my MUA's config file, and see what I was thinking when I did it. Particularly when it causes it to fail when I upgrade, or when the upgrade overwrites it I can reapply the patches of what I did.
I highly recommend the Corolios Press book on CVS, Open Source Development with CVS. It'll help you when you are just getting your feet wet.
CVS is good for even the dot files in your home directory, and is indispensible on a large project. <rant>Why the Linux kernel/Perl developers aren't using some sort of version control? My guess is that they were dropped on their heads when young, that's why I use FreeBSD,
CVS makes development on big projects simpler, CVS makes managing many files easier, and keeps you from having to remember why you put that space into the end of that shell variable in your .zshrc.
As usual, feel free to follow up and I can answer more specific questions, or someone else with reasonable levels of CVS clue can.
[ Parent ]