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 ブランチとかないので注意。