今年(2016年)の2月に、Migrate your code with the GitHub Importer ということで、既存のコードをGitHubに移行するための機能がリリースされたようです。
検証しきれてないですが、少し使ってみた結果をまとめました。
事前準備
- 移行元のリポジトリのコミッターに対して、GitHubアカウントを作成
- 移行元へのコミット時のメールアドレスを上記アカウントに登録
GitHubはメールアドレスを複数登録できます。(公開アドレスはひとつのようですが)
メールアドレスで一致するのがあれば、コミットのauthorが判定できるはず。
手順
公式サイトにも手順があります。
https://help.github.com/articles/importing-from-subversion/
移行元のURL、移行先のリポジトリの設定
Importer機能は次のURLになります。
subversionのURLと、それをどのアカウントの下のリポジトリでつくるのかと、公開設定を決めます。
Redmineであればhttps://[redmine_server]/svn/[project_identifier]
みたいなURLになると思います。
subversionリポジトリへの認証
begin importを押すと、移行元のリポジトリにアクセスするための認証情報が要求されます。
Redmineであれば、プロジェクトメンバーのものを入力すればOKです。認証に成功すれば、インポートが開始されます。
authorの対応付け
インポートが完了すると、移行元のauthorが一覧表示されます。このタイミングでも、GitHubアカウントに紐付けられるようです。
Redmineとの関連づけ
移行後のリポジトリを、Redmineと連携させる手順の詳細はこちらにあります。
まとめ
移行元のリポジトリの容量が大きいと時間がかかりそうですが、数人規模のプロジェクトであれば特に問題なさそうな気がします。
subversionの場合、svn2gitを使ってGitに変換しているようです。これの中身がgit-svnなので、もとのリポジトリのリビジョンが多かったり、容量が大きいと時間がかかるかもしれないですね。
参考サイト