Git で管理していたプロジェクトを、Google Codes (Subversion) にも突っ込んだ。面倒だったので、ちとメモ。
Git repository の作成
まずは Git repository の作成。lpaldb というプロジェクトを作る。
$ mkdir lpaldb
$ cd lpaldb
$ touch README
$ edit index.html
$ ...
$ git init
$ git add .
$ git commit -m 'first commit'
$ cd ..
Google Codes のレポジトリー
Google Codes の Hackathon 用リポジトリーは、複数のプロジェクトを次のやうに管理している。
/branches
/tags
/trunk
/Hackathon-Title
...
/gae20090411
/gae200906
/html5_20091003
/wiki
trunk 以下のハッカソンごとのプロジェクトを。更にその下の各人のプロジェクトを置く形式。
今回は、/trunk 以下の html5_20091003 の下に自分のプロジェクト lpaldb を突っ込む。
Git Svn
Git Svn を使うと、Git で Svn のリポジトリーを操作できる。
ただ、hackathon-jp はとても大きなリポジトリーなので、全てのリポジトリーをローカルに持って来るのは大変。必要なコードも一部だけなので、それは避けたい。
そこで、/trunk/html5_2009103 以下だけを取って来た。git svn clone に Trunk を指定する -T オプションを使う。
$ git svn clone https://hackathon-jp.googlecode.com/svn/trunk -T html5_20091003 html5
これで html5 というディレクトリーが出来る。
これにさっきの git repository を追加する。
$ cd html5
$ git fetch ../lpaldb master:lpaldb
lpaldb (git) を lpaldb branch として html5 に取り込み。
$ git checkout lpaldb
$ mkdir lpaldb
$ git mv html lpaldb
$ git mv README lpaldb
$ ...
$ git commit -m 'Move lpaldb source into lpaldb dir'
lpaldb branch をきれいにしたら、master ブランチに merge。その後、本家 svn repository へアップする。
$ git checkout master
$ git merge lpaldb
$ git svn dcommit
これでお終い。フゥ、一苦労。もっと楽な方法があったら教えて下さい。