… even the code that doesn’t work.
I use SourceGear Vault for personal work and experiments. SourceGear is free for a single user (see the last question in the Vault FAQ).
When an experiment doesn’t work out I have a tendency to delete and purge the project from source control. I don’t want my repository cluttered with broken junk. Invariably, 3 months later I’ll run into a scenario I’ve tried before, but I don’t have the code because my first attempt didn’t work. I’m always wishing I had the old code to prove that an approach doesn’t work. Even worse is when I’ve learned something new that might have gotten the old code working.
Now I’m a code packrat. I stuff broken projects into basement shoeboxes hoping the projects will be worth something someday.