git-svnなgitレポジトリをcloneするの法

git svn clone は svn ログをたどるためでかい svn レポジトリになるととんでもなく時間がかかります。

なのですでに clone 済みの git レポジトリから clone したら簡単じゃんと思って素直に clone してみたのだけど、そのままじゃうまく clone 出来なかったのでメモ。

こんな感じでやればおk

# とりあえずレポジトリ作る
mkdir test
cd test
git init

# clone
git remote add origin http://co-workers-pc/dev/project/.git
git config --add remote.origin.fetch '+refs/remotes/*:refs/remotes/*'
git fetch
git reset --hard trunk

# git svn の remote を再設定
git svn init -s http://yourrepos/svn/project/
git svn rebase

なんだか手間かかるけど git svn clone するのと比べると圧倒的に速い。

いきなり clone しないで remote add して config を追加してあげたあと fetch するのがポイントか。

master を trunk として使わないなら git reset はいらんかな。あと、svn init-s してないときはそもそも trunk ブランチとかないので注意。

by typester / at 2009-01-08T13:19:00 / git / Comment