Additionnally to Domenic's answer (still svn-to-gitting in 2019…):
In the specific case of a deleted-then-recreated branch (1), reset should be applied to the branch creation commit, after having deleted references to the old branch:
> git svn fetch
…
r146970 = …
Checksum mismatch: bla.x # Uh oh, there we go!
>
> svn log -v -r 146971 $svn
M /branches/y/bla.x
>
>
> svn log -v -r 146971 $svn/branches/y/bla.x | less
------------------------------------------------------------------------
r146971
M /branches/y/bla.x
Modified bla.x
------------------------------------------------------------------------
r145665
A /branches/y (from /branches/z:145664)
Rebasing y on z
------------------------------------------------------------------------
>
>
> rm -R .git/refs/remotes/origin/y .git/*/refs/remotes/origin/y
> vi .git/info/refs .git/packed-refs
> git svn reset -r145665 -p
> git svn fetch
I'm supposing that git-svn did not see or apply the branch deletion, thought it was unnecessary to recreate it from branch z, and thus tried to applied 146971 on the old tree. Telling it there is no branch y forces it to play the branch creation (from z).
(1) mimicking in svn the equivalent of a git rebase z of branch y: svn mv y y.old && svn cp z y && svn merges to get all commits of y.old on the new y