I have a repository whose layout is like this:
trunk/
projectA
projectB
branches/
projectA-1.0
projectB-1.0
tags/
projectA-1.0.1
projectB-1.0.1
I want to convert them to separate git repositories with the trunk/projectA as the top-level directory and all it’s branches as git branches.
Whenever I try to specify a git svn init like git svn init -T trunk/projectA -b branches -t tags http://svn.example.com, the follow-up git svn fetch fails mysteriously on different revisions. Sometimes it gets all the way to 200, sometimes it stops.
My current thinking is that I should create a git repository that mirrors the whole subversion repository as a single entity with subdirectories for each project. Then I would use git-filter-branch to rewrite the subdirectories to the root of the project.
However, I’m not sure how to get the branches to behave like I want using git-filter-branch and.
Also it would be ideal to create a single git repo that has different branches for the “trunk” of each project, I would have no problem not really having a master in this case.
What I ended up doing was cloning the root of the repository and copying that new git repo for each project and rearranging things. It wasn’t clean or pretty, but it was legacy code that I no longer need to look at very often.