There is a closed-source project that is going to be open-source, and I was asked to attempt to add licenses to all source files in the SVN repository retroactively, as the tree history might be of general interest. There is also interest in migrating to a DVCS, and hgsubversion doesn't appear to track svn mergeinfo, so I decided to try converting the SVN repository to git (doing a one-way conversion that fixed tags and such) and then attempt to edit history from there.
I was actually very lucky, as the very first revision happened to have a branch that led to work done for an earlier public source release. Thus, I decided to try git rebase sourcerelease-branch master
. A few very painful hours later, I was finished...
...except for one problem. There were several branches in the converted repository (including a 'branch' that was actually mainline development past 2009 or so), and it didn't look like rebase had traversed them. Asking around in #git
, I was told that it was not possible to make git rebase
traverse branches.
Well shoot...what can I do? Is what I'm going after even possible, with git or with some other version control system?
EDIT: Here is a visual of what I have
A---B random_branch
/
C---D---E---F master
\
G---H add_license_branch
I essentially want to get the changes I made in change-license-branch
to appear in master
and in any branch that branches from master
such as random_branch
. When I'm through, I don't even want a add_license_branch
, it'd be nice if I could squish C, G and H together and put the result where C is right now.