I have source file A, which is getting long and contains two large classes.  I want to split it into files A and B, preserving history and "blame" data.
In Subversion, this is very easy: do an svn copy A B, delete the lines from A that should only be in B and vice versa, then commit.  But the project's owner sadly wants to switch to Git, and this is one of the workflows that I don't know how to do.
When you do svn log B, you get B's history from after the split, plus A's history from before the split.  Additionally, svn blame B will attribute pre-split changes to the correct authors in the history of A, rather than attribute them to whomever did the split.
 
     
     
     
    