SVN から Git に移行する
SVN から Git への以降は5 つのシンプルなステップに分けられます:
- 移行に向けた環境の整備
- SVN リポジトリのローカル Git リポジトリへの変換
- SVN リポジトリに変更があった場合のローカル Git リポジトリの同期
- Bitbucket を経由した、開発者との Git リポジトリの共有
- 開発作業の SVN から Git への移行
環境整備、変換、同期の 3 つのステップでは、SVN のコミット履歴を取得して Git リポジトリに変換します。このステップの管理を行う最善の方法は、チームメンバーの一人を移行推進担当者 (このガイドを読んだ方が最適です) に任命することです。3 つのステップの作業はすべて移行推進担当者のローカルマシーン上で行います。
同期のステップ以降は、特に問題なくローカルな Git リポジトリを対応する SVN リポジトリと常に同期させて最新の状態にすることができるはずです。他の開発者と Git リポジトリを共有する場合は、Git ホスティング サービスである Bitbucket にローカル Git リポジトリをプッシュします。
Bitbucket にプッシュされると、他の開発者はその変換された Git リポジトリをそれぞれのローカルマシーンにクローンし、Git のコマンドを使用してその履歴を調べることも、またビルドプロセスに組み込むこともできます。ただし、チームを完全に Git ワークフローに切り替える準備ができるまでは、同期は SVN から Git への一方向のみとするべきです。即ち、開発者からそれぞれの Git リポジトリに対するアクセスはリードオンリーとし、コミットは引き続き元の SVN リポジトリに対して行うべきです。Git リポジトリが変更されるのは、移行推進担当者が同期を行なって更新内容を Bitbucket にプッシュしたときのみです。
この方法によって移行期間を明快に認識することが可能となり、その間は既存の SVN ベースのワークフローを中断することなく Git に慣れ親しむことができます。開発者の準備状況が切り替え可能なレベルになったと確信が持てた場合、SVN リポジトリの凍結および Git へのコミットの開始という最後のステップを実行します。
Gitワークフローの全体が導入済みであり、また開発者は Git に慣れ親しむための十分な時間を与えられているため、この切り替えは極めて自然なプロセスとなるはずです。以上の方法で、プロジェクトを SVN から Git に首尾よく移行させることができます。