2008年 02月 21日

git-svn で svn のブランチをマージ (未解決)

# git-svn version 1.5.3.6 (svn 1.3.2)
$ git clone -s ...
$ git reset --hard remotes/trunk # マスターを最後に trunk がコミットされたリビジョンにリセットする
$ git merge barbaz # barbaz はリモート svn なブランチ
$ git svn dcommit --dry-run

してしまうと、予想に反して barbaz のブランチにコミットされてしまう。

git-svn は dcommit のとき git log HEAD の git-svn-id: の一番最初 (最新) をみるらしいけど、リモートが svn なコミットを merge すると、そっちが最初になってしまう。

git-svn-id はコミットログに入ってるっぽいから自分で書いたらとりあえずコミット先はかわるだろうけど、あぶなくてできない。merge してくるときにブランチ側の git-svn-id を消すべきなんだとおもうけどよくわからない。うちの git-svn が古いけど新しいのだと直ってたりするのかな (古いのしか入らなかった。めんどす)。

>