Refactoring and SourceControl

One of the most common refactorings is to rename members: methods, classes, variables and so on, this kind of refactoring works pretty well when your code is under SourceControl.

There are another kind of refactorings, such as: rename files or change the source tree. Using MS VSS as SourceControl Provider I've found a lot of issues, the most popular is to forget to delete the original file, so in the next "GetLatestVersion" from the $/root, you get the old file again.

So, if you need to refactor any kind of FS objects (files, folders, trees) disable SourceControl, make the refactoring, and enable it again. Yes, you will loose your files history (at least in a 1 history per file basis), but this is better that reviewing every action performed by our friend VSS.

Anybody knows how to handle this refactorings with SourceDepot, CVS, PVCS, etc..?