git-svnを途中から始める
普通にgit-svnをやろうとすると、活発なプロジェクトだと既に数千以上の履歴があったりなんかして、全部フェッチするのにアホみたいに時間がかかります。あときっとsvnのホストも、負荷がデカくて涙目だと思います。
それで、githubあたりからgit-svn済みのgitリポジトリを入手して続きをやりたくなるんですが(gitだとかなりの履歴があってもすんなり取得できる)、このやり方はgit-svnのmanページのBASIC EXAMPLESに載ってます、がしかし、どうもうまく出来ないので、よくわからないけど出来るようにするやり方。rubygemsでやってみました。
githubで"rubygems"で検索したら、unofficial mirrorが見つかりました。感謝しつつクローンします。
$ git clone git://github.com/vvs/rubygems.git $ cd rubygems
次にSubversionの方をセットアップ。
$ git svn init --stdlayout http://rubygems.rubyforge.org/svn
できるかな?
$ git svn rebase Unable to determine upstream SVN information from working tree history
怒られました。
かなり無理矢理かも…remotes/trunkをmasterと同じにしてしまいます。
$ cat .git/refs/heads/master > .git/refs/remotes/trunk $ git svn rebase Rebuilding .git/svn/trunk/.rev_map.3d4018f9-ac1a-0410-99e9-8a154d859a19 ... r1 = 440e25888865db15deaa4e587f7e813fa4fb688a r2 = f86b2ee282a3f0017324a64e5657a485570fe25a r3 = fe49b4371490cac86dff87f05a94fa52b7da7748 略 r2289 = af62a2a1bcca671c9135a324178f9921f2cae4cc r2290 = 1c33fbedd5743043141547cf4b56d8eb4c88ae23 Done rebuilding .git/svn/trunk/.rev_map.3d4018f9-ac1a-0410-99e9-8a154d859a19 Current branch master is up to date.
できたー!
$ git branch -av * master 1c33fbe Added a TODO for some badness. remotes/origin/HEAD -> origin/master remotes/origin/master 1c33fbe Added a TODO for some badness. remotes/trunk 1c33fbe Added a TODO for some badness.
ってこんなんでいいんだろうか。でも使えてるっぽいです。