Maxim Kuvyrkov <maxim.kuvyr...@linaro.org>: > The general conversion workflow is (this really is a poor-man's translator of > one DAG into another): > > 1. Parse SVN history of entire SVN root (svn log -qv file:///svnrepo/) and > build a list of branch points. > 2. From the branch points build a DAG of "basic blocks" of revision history. > Each basic block is a consecutive set of commits where only the last commit > can be a branchpoint. > 3. Walk the DAG and ... > 4. ... use git-svn to individually convert these basic blocks. > 4a. Optionally, post-process git result of basic block conversion using "git > filter-branch" and similar tools. > > Git-svn is used in a limited role, and it does its job very well in this role.
Your approach sounds pretty reasonable except for that part. I don't trust git-svn at *all* - I've collided with it too often during past conversions. It has a nasty habit of leaving damage in places that are difficult to audit. I agree that you've made a best possible effort to avod being bitten by using it only for basic blocks. That was clever and the right thing to do, and I *still* don't trust it. -- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>