svnsync
Subversion リポジトリに大きなサイズのリポジトリをインポートする方法として、svnsync コマンドがあります。本ページでは svnsync コマンドの使い方を説明します。
操作方法
事前準備
- インポート先(同期元)となる Subversion リポジトリを新規作成します。
- svnsyncコマンドを利用するために、tracpath の管理画面から svnsync 用のアカウントを登録する必要があります。
- この許可したアカウントは、svnsync を操作するアカウントと一致させる必要があります。
- また、対象のリポジトリに対する権限を付与しておく必要があります。
- インポート先とする Subversion リポジトリは空の状態で作成しておく必要があります。
- 管理者権限を持ったアカウントで tracpath にログインします。
- 最初に作成した Subversion リポジトリの設定変更画面を開きます。
- プロジェクト一覧から対象のリポジトリから「リポジトリ設定を変更」をクリックします。
- 「svnsync ユーザ:」に svnsync で利用するユーザ名を指定します。
- 他の Subversion リポジトリからインポートするのに必要になります。
操作手順:
- svnsync コマンドを準備します
TortoiseSVN の場合:
TortoiseSVN インストーラーで command line client tools をインストールするようにしてください。C:\Program Files\TortoiseSVN\bin フォルダに svnsync.exe がインストールされます。
参考: StackOverflow Using and running Tortoise svnsync in Windows via command line
svnsync.exe も同梱されているため、そのままコマンドが利用可能です。
- Windows 以外の場合:
- svn が使える環境であれば、通常は svnsync も利用可能です。
- 同期元になる Subversion リポジトリがあるものとする
ここでは file:///C:/repos/example とします
- ダンプファイルになっているなら、一旦ローカルにリポジトリを作成して svnadmin load する
- 同期先になる Subversion リポジトリをプロジェクトページから作成する
ここでは https://example.tracpath.com/svn/target とします
trunk などの初期ディレクトリを作成しないようにする (そうでないと svnsync init で失敗します)
続けて、リポジトリ設定のダイアログで、svnsync ユーザ: にインポートを実行するユーザを設定します
svnsync init で同期の準備をします
$ svnsync init --sync-username <同期先のユーザ名> https://example.tracpath.com/svn/target \ --source-username <同期元のユーザ名> file:///C:/repos/example
svnsync sync <同期先URL> で同期を実行します
$ svnsync sync https://example.tracpath.com/svn/target
コマンド例
リポジトリの設定で svnsync ユーザを指定していない場合、以下のようなエラーになる。
C:>svnsync.exe init https://インポート先URL/ ^ http://インポート元URL/ svnsync: warning: W200007: Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program svnsync: E175002: DAV リクエストに失敗しました。リポジトリの pre-revprop-change フックが機能不全であるか存在しない可能性があります svnsync: E175002: Revprop change blocked by pre-revprop-change hook (exit code 1) with output: Error: ====== Changing revision property 'svn:sync-lock' by '×××' is prohibited. After configuring svnsync user for the repository in projects page, try again.
svnsync ユーザを指定した後:
C:>svnsync.exe init https://インポート先URL/ ^ http://インポート元URL/ svnsync: warning: W200007: Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program リビジョン 0 の属性をコピーしました。
同期実行:
C:>svnsync.exe sync https://インポート先URL/ svnsync: warning: W200007: Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program リビジョン 1 をコミットしました。 リビジョン 1 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 2 をコミットしました。 リビジョン 2 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 3 をコミットしました。 リビジョン 3 の属性をコピーしました。 ファイルのデータを送信しています ............................ リビジョン 4 をコミットしました。 リビジョン 4 の属性をコピーしました。 リビジョン 5 をコミットしました。 リビジョン 5 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 6 をコミットしました。 リビジョン 6 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 7 をコミットしました。 リビジョン 7 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 8 をコミットしました。 リビジョン 8 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 9 をコミットしました。 リビジョン 9 の属性をコピーしました。 ファイルのデータを送信しています ...... リビジョン 10 をコミットしました。 リビジョン 10 の属性をコピーしました。 ファイルのデータを送信しています . リビジョン 11 をコミットしました。 リビジョン 11 の属性をコピーしました。 リビジョン 12 をコミットしました。 リビジョン 12 の属性をコピーしました。
関連FAQ
リンク
WikiTOPへ - tracpathのオンラインドキュメントサイト、Wiki tracpathのTOPページです。