ローカルはGitリポジトリ、リモートがSVNで開発をしてきて、リモートのコミット先が新規に作られたブランチに変わった場合など、
SVNリポジトリとローカルヒストリーに接点がある場合、SVNリポジトリとGitリポジトリがあるリビジョン
で繋がる場合に有用な方法。
イメージは
Git: -->A-->B SVN: -->A
という構造。
$ git checkout -b svn <Git Aのハッシュ値> # SVNにコミット(リリース)用ブランチ
$ git svn init <SVNリポジトリ>
$ git svn fetch
$ git branch -a # remotes/git-svnが存在していることを確認
$ git log git-svn --prety=oneline # SVN Aのリビジョンのハッシュ値を確認
$ echo "Git Aのハッシュ値 SVN Aのハッシュ値" > .git/info/grafts
$ git merge --squash B
$ git commit -a "Bの変更を取り込み"
$ git svn dcommit
Git(svn): -->A-->B SVN: -->A-->B
となるはず
※SVNリポジトリが生成したばかりのリポジトリだとエラーになるとの情報もある。
また、SVNがA->Cという別のリビジョンがある場合は未検証