in reply to How to best control non-working code with source control?

Branching and merging is the way to go. If you have useful code (even experimental code) it should be in the repository. Unfortunately CVS doesn't support branching all that well. SVN (Subversion) I hear is better at it.

I personally would look into git. It's even been used to perform merges for a CVS repository.