Mark Mandel made an interesting post about branching strategies when you have both feature development and refactoring to perform together. Specifically, he’s wondering how best to ensure you don’t orphan the refactoring if you abandon the feature, since the refactoring might be useful elsewhere.
I posted my comments, and you should too. Effectively using your tools is vital to success in the software world, and no tool has more potential value (and potential pitfalls) than source control.
Everything you care about having around tomorrow should be stored in source control. That obviously means your source code, but also includes your build/deploy scripts, editor/IDE config files, design documents, etc.