移行
この移行ガイドでは、移行期間中には SVN から Git への一方向同期のみを行なうことを推奨しています。即ち、Git の慣熟期間中はチームメンバーによるコミットは引き続き SVN リポジトリに対するものに限るのです。切り替えの準備が整った時点で、SVN リポジトリはそれがどのような状態であろうともそこで使用停止します。そして開発者はそれぞれのローカルリポジトリに対してコミットを開始し、Bitbucket を経由してそれを共有します。
SVN から Git への不連続的な切り替えを行うことで極めて直観的な移行が可能になります。すべての開発者は今後使用する新しい Git ワークフローを理解しているはずであり、また Bitbucket からクローンしたローカルリポジトリ上で Git コマンドを使う練習時間を十分に与えられたはずです。
このページでは、移行の最後のステップをひとつずつガイドします。
Git リポジトリの同期
Git への移行を最終的に実行する前に、SVN リポジトリにコミットされた新しい変更がすべて Git リポジトリに反映されていることを確認しなければなりません。これは、同期のステップで説明した処理と同じ処理を実行することによって可能です。
git svn fetch
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar sync-rebase
java -Dfile.encoding=utf-8 -jar ~/svn-migration-scripts.jar clean-git --force
SVNリポジトリのバックアップ
Git への切り替え以前の履歴を移行後の Git リポジトリで確認することは可能ですが、SVN の元データを調べる必要が生じた場合に備えてSVN リポジトリのバックアップをとっておくことは良い習慣です。SVN リポジトリのバックアップを行なう簡単な方法は、SVN の中央リポジトリをホストするマシーン上で次のようなコマンドを実行することです。SVN リポジトリが Linux マシーンにホストされている場合は、次のコマンドを使用します:
svnadmin dump | gzip -9 >
関連資料
Git リポジトリ全体を移動する方法
ソリューションを見る
Bitbucket Cloud での Git の使用方法についてのチュートリアルです。
Replace svn-repo
with the file path of the SVN repository that you backing up, and replace backup-file
with the file path of the compressed file containing the backup.
SVN リポジトリのリードオンリーへの切り替え
この段階で、すべての開発者は Git にコミットを行うことになります。その規則に強制力を持たせるために、SVN リポジトリを読み取り専用に切り替えます。この操作はサーバーの設定に依存しますが、svnserve
デーモンを利用している場合は、SVN リポジトリの conf/svnserve.conf
ファイルを編集することによって行います。このファイルの [general]
セクションに次の 2 行を記述します
anon-access = read auth-access = read
これにより、匿名ユーザーに対しても認証済みユーザーに対してもアクセス許可を読み取り専用にすることを svnserve
に指示します。
要約
これでプロジェクトを Git に移行する処理はすべて完了しました。お客様のチームは Git ワークフローを用いて開発を進め、分散開発の利点を最大限に生かすことができます。成功を祈ります!
この記事を共有する
次のトピック
おすすめコンテンツ
次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。