【Subversion】svnsync 使用例
問題
svnsync でリポジトリをコピーしたいです。
答え
コピー元サーバーかコピー先サーバーでsvnsyncを実行するのが効率が良いのではと思われる。
コミット内容を読み込むのと、コミットするのを繰り返すが、せめてどちらかをローカルで file:///~ で参照すれば速いので。
今回はコピー元サーバーでsvnsyncを実行してみる。
準備
コピー元サーバーにはもともとドメインやIPアドレスは振ってあるのだが、file:// で参照する場合は使わない。
コピー先サーバーはIPアドレスなりドメインなりでアクセスできるようにしておく。
コピー先リポジトリの hook/pre-revprop-change を有効にして、実行権限付与、exit 0 するようにしておく。
svnsync init
コマンド形式
$ svnsync init DestURL SrcURL Option
例
$ svnsync init https://example.com/project1 file:///var/svn/project1 --source-username=user --source-password=password --sync-username=svnsyncuser --sync-password=svnsyncpassword
Copied properties for revision 0
コピー元が file:// だとパスワード不要だけど。
svnsync sync
コマンド形式
$ svnsync sync DestURL
例
$ svnsync sync https://example.com/project1 --source-username=user --source-password=password --sync-username=svnsyncuser --sync-password=svnsyncpassword
svnsync sync はエラーで止まっても、ユーザーが Ctrl+C などで止めたとしても、中断したところから再開できる。
最新リビジョンまで同期した後でコピー元のリビジョンが進めば、再実行することで同期する(差分が反映される)。
その後
最新リビジョンまで同期した後は、定期的に sync 、または post-commit フックなどでコミットのあるたびに sync すれば最新の状態を保つことができる。
コメント