I've recently inherited a project and would like to clean up the 'code delivery' workflow, by associating our internal Git repository with the client's SVN repository.
Repository Overview
My company has developed a software package for a client. We track our changes using a Git repository. Completely separately, we provide occasional code-drops and released binaries to the client's SVN repository. The file structure of the client's SVN repository is sort of a subset of our own file structure - it contains some files and folders, but not all.
Desired Workflow
Ultimately, I think I'd like to create a branch in our git repository called "ClientSVNDelivery". This branch should reflect the state of the client's SVN repo. Whenever we want to deliver updates to the client, I would like to git merge
our changes over to that branch (from 'master'), and then git-svn dcommit
those changes up to their remote site.
Problem
The problem I'm having, logistically-speaking, is the starting point. Since both repositories have a long, completely unassociated history and the folder structure is not identical (again, the SVN project is a subset of the folders in our internal git repo), I'm not sure how to create the associations needed to set up my 'ClientSVNDelivery' staging branch (namely, how to form a common ancestor that would allow a merge to actually work). To be honest, I'm even having trouble describing what I want to do!
Would I create the branch off of our most recent internal revision? Some arbitrary earlier revision? Or would I branch off of the remove-svn history instead?
Question
Has anyone dealt with this kind of scenario before? Were you able to streamline the process, and what steps did you take to set up your intermediate branch? How did you create the history associations?