I'm using git-svn
to interact with a remote svn
repsitory that follows the traditional layout of trunk, tags, and branches.
There's a branch in svn
that git
has missed the history of. I know the history to be:
r0--r1--r2---r4---r6 remotes/trunk
\
r3---r5-- remotes/BRANCH_NAME
But git seems to have missed the branch point and thinks the history is:
r0---r1---r2-----r4---r6 remotes/trunk
r0'--r1'--r2'--r3--r5--- remotes/BRANCH_NAME
Where r0'
, r1'
, and r2'
are copies of r0
, r1
, and r2
that appear in git, but not in svn. In svn there is exactly one r0
commit.
The first entry in .git/svn/refs/remotes/BRANCH_NAME/unhandled.log.gz
may offer the experts a clue:
r3
+dir_prop: . svn:mergeinfo /product/trunk/src_py:371-436%2C438-532
How do I get git to realise that r3
was branched from r2
and do away with r2'
, r1'
, and r0'
?
For extra credit: Is there a general way to rewrite git's view of svn history, that won't get clobbered by git svn fetch
et al?