SVNリポジトリを移行するときは、ファイルと変更履歴に加えて、権限設定、フックスクリプト、CIなどの接続先も確認します。リポジトリの複製が終わっても、これらが移行先で動かなければ、開発作業を再開できません。
この記事では、事前調査から旧サーバーの廃止までを5フェーズ・31項目に分けて整理します。自社の環境に当てはめ、各項目の担当者と確認結果を記録してください。
フェーズ1 事前調査 8項目
最初に、移行するリポジトリと、別途保全するリポジトリを一覧にします。利用中かどうかだけでなく、過去版を参照する必要や保存期間も確認してください。
| ✓ | 確認項目 | 確認する理由 |
|---|---|---|
| □ | リポジトリの一覧と総数を確定した | 対象の移し忘れを防ぐ |
| □ | 各リポジトリの容量と合計容量を把握した | 必要な容量と費用を見積もる |
| □ | 利用状況と保存要件を確認し、移行・別途保全の対象を決めた | 休眠中のリポジトリにも保守や説明に必要な履歴がある |
| □ | 利用者数とアカウント一覧を把握した | 利用者と切替の周知先を確認する |
| □ | 権限設定(authz=SVNの権限設定ファイル)の内容を控えた | 移行先でも必要な閲覧・更新の範囲を設定する |
| □ | フックスクリプトの有無と内容を控えた | フックで行っている処理を引き継ぐ |
| □ | CI・課題管理・ビルド・svn:externalsの参照先を一覧にした | リポジトリ外の接続先や依存先も切替対象になる |
| □ | SVN本体・サーバーOSのバージョンを記録した | 移行方法と接続の互換性を確認する |
フェーズ2 計画 6項目
| ✓ | 確認項目 | 確認する理由 |
|---|---|---|
| □ | 切替日と作業時間帯を決め、関係者と合意した | 業務への影響を確認する |
| □ | 書き込み停止の時刻・方法・確認担当を決めた | 利用者への周知だけでは書き込みを停止できない |
| □ | 中止・切り戻しの基準と、新環境で書き込み再開後に問題が出た場合の扱いを決めた | 新環境の変更を失わずに復旧する手順が必要になる |
| □ | 移行作業の担当と連絡体制を決めた | 作業中の連絡先と判断者を明確にする |
| □ | 移行先の容量・費用・対応機能と、バックアップ・復元の準備を確認した | 切替後に必要な機能や保全方法が不足することを避ける |
| □ | 旧サーバーの保全期間と廃止日を決めた | 保存要件に合わせて旧環境を保全する |
フェーズ3 検証移行 7項目
本番切替の前に、対象の設定や利用方法を含む検証移行を行います。
| ✓ | 確認項目 | 確認する理由 |
|---|---|---|
| □ | 移行元・移行先が対応する方法で、対象の履歴を複製した | exportしたファイルの再登録では過去の履歴を引き継げない |
| □ | 履歴をそのまま移す場合は最終リビジョン番号を照合し、検証処理の結果も確認した | 番号の一致だけではデータの正しさを判断できない |
| □ | 最新版と選定した過去版のファイル・属性・変更記録を照合した | 過去の出荷版も取り出せることを確かめる |
| □ | svn:needs-lockなどの属性と、既存ロックの解除・再取得手順を確認した | 属性の移行と現在のロック状態の引き継ぎは別の作業になる |
| □ | 権限設定を移行先で再現し、テストユーザーで確認した | 必要なアクセスを許可し、不要なアクセスを拒否できるか確かめる |
| □ | フック相当の仕組みを移行先で再現・動作確認した | コミット時の検査や通知が動くか確認する |
| □ | CI・課題管理など外部連携の接続を試験した | 認証と接続に加え、ビルドや通知の結果を確認する |
サーバーに管理権限がある場合は、svnadmin verifyなどによる整合性確認も行います。ホスティング先で実行できない場合は、提供元に検証方法と結果を確認してください。これらの確認に加え、過去版の取り出し、権限、フック、外部連携を実際に試します。
UUIDはリポジトリの識別子です。svn relocateは、同じリポジトリの場所が変わった場合に作業コピーの接続先を変更する操作です。履歴やリポジトリ内パスを変更する移行では、再チェックアウトなどの手順を検証してください。
フェーズ4 本番切替 5項目
接続先変更の手順は事前に配布します。以下では、書き込み停止から再開までの確認を行います。
| ✓ | 確認項目 | 確認する理由 |
|---|---|---|
| □ | 旧環境の書き込み停止を確認し、最終状態のバックアップを確保して移行先へ最終差分を反映した | 最後に確定した変更まで保全する |
| □ | 検証済みの接続先変更手順を事前に配布し、切替時の実施を確認した | 利用者が旧環境を参照し続けることを避ける |
| □ | UUID・履歴・リポジトリ内パスを確認し、relocateまたは再チェックアウトの手順を検証した | 接続先変更だけで作業コピーを継続利用できるか判断する |
| □ | 連携先(CI・課題管理)の接続先URLを更新した | 旧サーバーへの接続を残さない |
| □ | 最終リビジョンと内容を照合し、権限・連携・バックアップの確認後に書き込みを再開した | データの欠落や動作不良を確認してから利用を再開する |
フェーズ5 移行後 5項目
| ✓ | 確認項目 | 確認する理由 |
|---|---|---|
| □ | 切替時から旧環境の書き込み禁止を維持し、保全期間中の参照方法を決めた | 新旧両方で更新されることを防ぐ |
| □ | 切替前に準備したバックアップの実行結果と、復元確認の結果を記録した | 新環境のデータが継続して保全されることを確認する |
| □ | 運用ドキュメント(構成図・権限一覧・手順)を更新した | 新環境で使う手順と連絡先を確認できるようにする |
| □ | 数週間後に利用状況と問い合わせを振り返った | 利用再開後に発生した問題と対応状況を確認する |
| □ | 移行の受け入れと保存要件を確認し、保全期間の終了後に旧サーバーを廃止した | 必要な履歴や復旧手段を早く廃棄しない |
移行方法と設定で確認する3点
過去の履歴を残す方法を選ぶ。 exportは指定した版のファイルを取り出す操作で、履歴を複製する操作ではありません。履歴を残すには、移行元と移行先が対応する方法を選びます。dump/load、svnrdump、svnsync、hotcopyは、それぞれ利用条件と引き継ぐ情報が異なります。
設定とロックを別に確認する。 dumpにフックスクリプト、サーバー設定、現在のロック情報は含まれません。認証・権限・フックを移行先でどう設定するか、既存のロックをどう扱うかを決めます。
連携先で動作を確認する。 接続先URLを更新したら、CIのビルドや課題管理への通知を実行します。URLの変更だけで完了とせず、認証と連携結果まで確認してください。
自社に該当する項目を確認する
外部連携を使っていないなど、該当しない項目には理由を記録します。リポジトリ数や利用者数が少なくても、履歴の照合、権限確認、バックアップ、切り戻しの準備は必要です。検証の範囲は、データの重要性、設定の違い、停止できる時間に応じて決めてください。
まとめ
移行前に、リポジトリ、権限、フック、外部連携を一覧にします。検証移行では、最新のファイルだけでなく、過去の履歴と業務で使う操作を確認してください。
本番切替は、旧環境の書き込み停止、最終状態の保全、差分の反映、内容と動作の確認、利用再開の順で進めます。接続先変更の手順は事前に配布し、バックアップの準備も利用再開前に終えておきます。
tracpathへの移行を検討している方は、リポジトリの容量、利用人数、外部連携、希望時期をお知らせください。移行方法と支援が必要な範囲をご相談いただけます。
関連記事
参考資料
参照先は1.7系列の説明です。実作業では、利用中のバージョンと移行先の対応機能も確認してください。
この記事の著者
株式会社オープングルーヴ/tracpath編集部。バージョン管理サービスtracpathを提供。





