Maxim Kuvyrkov <[email protected]>:
> 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>