How do people generally deal with refactorings and Version Control Systems? I'm thinking about refactorings which affect the name and/or location of a source file, such as renaming a class, or moving a class to another package.
We use VSS. These sort of refactoring are a pain to carry out, as you have to manually do the renaming/moving in VSS and separately do the refactoring in IDEA, and try to avoid getting tied in knots.
How do other people deal with this? Can other VCS's deal with this better? Does IDEA integration deal with this for other VCS's?
When using VSS at least, it seems to me that changing the contents of a file is fine - you can just check it out, change it at will (editing using IDEA) and check it back in. However, if you're renaming/moving a file in IDEA, the corresponding VSS action would have to happen at the same time, meaning you're committing immediately.
So I'm not sure if this is a VSS-specific problem, or a more general problem with CVS's.