MIDI Chord Helper のソースコードをSVNからGitに移行

SourceForgeに置いてあるMIDI Chord Helper のソースコードですが、今までSubversion(SVN)レポジトリに置いてあった内容をGitレポジトリに移行しました。

取り込み手順の概要はこんな感じ:

SourceForge上の既存のリモートSVNレポジトリ
→ git svn clone で一時的なローカルGitレポジトリにクローニングする(はまりどころ1)
→ SourceForge上のリモートGitレポジトリにpush (→ ※1)

eclipseのworkspaceにローカルGitレポジトリを作る
→ 手元のworkspaceにあるソースをこのレポジトリにコミット
→ (→ ※1)で作ったリモートGitレポジトリからpull
→ 同じソースコードのはずなのになぜか競合してるって言われた
→ 仕方ないのでどっちかを全面採用という形でマージ(これもちょっと大変だった)

はまりどころ1

SVNレポジトリの構成ですが、標準だと思っていたら実はそうではなかったという。

2010年頃にはtrunkの中に置いていました(これが標準、ただしリビジョンはr2までそうしてた)。当時はRIMNETのHPの容量制限に引っかかりそうだったので、じゃあそのままSVNレポジトリにしてSourceForgeに引っ越しちゃおう、ということで単なるソース保存場所としてしか使っていませんでした。

その後、2013年頃にeclipseを使い始めたのに伴い、r3からはMIDIChordHelperという名前に移行しました。どうもこの時点から標準じゃない構成になっていたらしく、Git へ移行しようとしたときに git svn の -s オプションでr2まで(つまり2010年当時)しか反映されないという現象に悩まされました。

いろいろ調べた末、このブログ記事が参考になりました:git svn cloneで、標準構成じゃないときのbranches指定方法

cd 一時作業ディレクトリ
git svn clone -trunk=MIDIChordHelper --authers-file=authers.txt レポジトリURL

のようにtrunkが違うところにあることを教えた上で取り込んだら、r4以降が取り込めるようになりました。それより前のリビジョンはというと、eclipseを使い始める前で事実上ほとんど更新しておらず、これじゃGitに載せても意味ないよなーってことで対象外としました。
以後の更新はこのGitレポジトリに積み上げていこうと思います。

ちなみに –authers-file=authers.txt で指定したファイル authers.txt の中身は、

kamide = Akiyoshi Kamide <kamide@yk.rim.or.jp>

の1行を指定しただけです。= の左辺がSubversionに記録されているユーザ名、右辺がGitで使用するユーザ名とメールアドレスです。これがないとGitレポジトリで変なメールアドレスのようなものが勝手につけられてしまうので、ちゃんと指定するようにしました。

trunkを切り替えてcloneすることはSourceTreeではできなかったので、これだけはコマンドラインから行いました。あとはSourceTreeとeclipseの組み合わせでなんとかなりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です