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.