Subversion (any maybe other VCS systems) can track a file's history across different filenames via moves or copies. IDEA does a good job with this when you are operating on an entire file but it fails to preserve the file history when you are refactoring only part of a file into a new file.
For example say the class Parent, in Parent.java, had an inner class named Child. When you moved the inner class Child to being a package level class a new file, named Child.java, is created. The Child class has a history if being in the Parent.java file. IDEA's Refactor > Move (F6) tool is the logicial way you would move an inner class to a package level class but this fails to preserve the history.
Done manually in subversion the operations would expressed with a svn copy (svn copy Parent.java Child.java) to indicate the new file is derived from Parent.java and then the contents of Parent.java and Child.java would be edited with what IDEA currently does.
For this type of move, IDEA currently seems to create a new file and svn add (svn add Child.java) to the repository and then updates the contents of Parent.java and Child.java . This is wrong becuase svn add expresses that a file is new to the version control system and Child.java isn't really new and the notion that the Child class used to live under a different file name is lost.