SVN to Git conversion with renamed backbone

I have a multi-project SVN repository that I am trying to convert to multiple Git repositories, one per project.

This is the part that I can handle with git-svn and I found some HOWTOs for it, but where I ran into difficulty was that one of the current projects was created by renaming and merging parts of different projects in SVN repeatedly. In SVN, I can see the history of individual files back through renames / moves, but when I use git -svn and specify the current location of the project's trunk directory, it only converts the history up to the point where the layout was changed.I lose all of the old history when the trunk was moved from a different path.

Specifically, my storage layout looked like this:

/projectA/trunk/src/com/mycompany/projectA/MyClass.java
/projectB/trunk/src/com/mycompany/projectB/OtherClass.java

      

This was converted to:

/trunk/projectA/src/com/mycompany/projectA/MyClass.java
/trunk/projectB/src/com/mycompany/projectB/OtherClass.java

      

And then it was renamed and the src directories were merged into a common trunk:

/combined-project/trunk/src/com/mycomany/projectA/MyClass.java
/combined-project/trunk/src/com/mycomany/projectB/OtherClass.java

      

So, if I run:

git svn clone --trunk=/combined-project/trunk

      

Then I get a Git repository with history, only reverting to the most recent rename. Does anyone have any advice on how I can get Git svn clone to keep track of progress through renames?

+3


source to share





All Articles